(Or "message digest function") A one-way function which takes a variable-length message and produces a fixed-length hash. Given the hash it is computationally infeasible to find a message with that hash; in fact one can't determine any usable information about a message with that hash, not even a single bit. For some one-way hash functions it's also computationally impossible to determine two messages which produce the same hash. A one-way hash function can be private or public, just like an encryption function. MD5, SHA and Snefru are examples of public one-way hash functions. A public one-way hash function can be used to speed up a public-key digital signature system. Rather than sign a long message, which can take a long time, compute the one-way hash of the message, and sign the hash.