From CryptoDox, The Online Encyclopedia on Cryptography and Information Security
Hash functions are functions for summarizing or probabilistically identifying data. Such a summary is known as a hash value or simply a hash, and the process of computing such a value is known as hashing.
A hash function takes an input string (message) of arbitrary size and reduces it to a short string. A typical cryptographic hash function takes any input string and makes a 256 bit string from it. The hash value of an input string is analogous to the fingerprint of a person. It is often also called a "message digest." Hash functions are used for digital signatures such as RSA and DSA, but also for the construction of MACs (message authentication codes), the protection of passwords, and for the derivation of independent secret keys from a single master key. Cryptographic hash functions are an essential building block for applications that require data integrity, such as detectors of computer viruses, Internet security (for example PGP or IPSEC), and the security of electronic commerce and banking.
A cryptographic hash function must be a one-way function, which means that finding an input corresponding to a given output string is difficult: Even an opponent who spends a significant amount of money, say $10 million, will have a negligible success probability.
There are various algorithms available for generating message-digests, or hashes. Some of these are listed below. An example of the output generated by hash functions is also shown in the figure.
Current recommended hash functions for cryptographic applications:
Historically important hash functions:
Books of Interest