A CryptographicHash is a Hash for which it is ComputationallyInfeasible or at least VeryImpossible to construct a message that results in a particular pre-specified key, or to construct two messages which result in the same key. This makes such hash functions useful for assuring the integrity of documents. By encrypting the hash with a PublicKey it can also serve for signing documents such that anyone with the corresponding PublicKey can verify their integrity. Other common uses include:

Several well known and understood algorithms fall in this category:

A competition is currently in progress to come up with a new, stronger hash function to replace all of the above.

See also