<algorithm> (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.