A cryptographic hash algorithm, also called a cryptographic hash function, is a function which takes a variable size input and produces a fixed size output.
People who design hash algorithms attempt to make it difficult to predict the output for a given input, find two inputs with the same output (a hash-collision), or reconstruct the input from the output.
Alas, some popular hash algorithms are not as good at this as their designer had hoped.
Many diverse sub-fields in cryptography use cryptographic hash algorithms:
A particular output value generated by such an algorithm is given various names in various contexts: the cryptographic hash, the hash value, the message digest, the digital fingerprint, etc.
- tls and its predecessor ssl use hmac for message authentication, which in turn uses the (fast) cryptographic hash sha.
- password validation usually uses a deliberately-slow cryptographic hash for password hashing (sometimes misleadingly called "password encryption"), such as pbkdf-2, bcrypt, or scrypt.
- Most high-quality hardware random number generators use a cryptographic hash to "whiten" the raw data sample measurements randomness
Wikipedia: cryptographic hash function