The hash function takes a variable-length message input and produces a fixed-length hash output. It is commonly in the form of a 128-bit "fingerprint" or "message digest". Hashes are very useful for cryptography — they ensure the integrity of transmitted data, and provide the basis for HMAC, which enables message authentication.

See also