A cryptographic hash function is a special class of hash functions that map data of arbitrary size to a probabilistically unique bit string of a fixed size – the hash. What distinguishes a cryptographic hash function is that it is designed to be a one-way function, which means it is not practically possible to invert – i.e. take a hash and reproduce the input data used to create it.
Cryptographic hash functions have many applications, including digital signatures, message authentication codes (MACs), and other forms of authentication. They can also be used as ordinary hash functions, to index data in hash tables, for fingerprinting, to detect duplicate data or uniquely identify files, and as checksums to detect accidental data corruption.