Hash functions are functions designed to “compress” an arbitrary message or data set, usually written in a binary alphabet, into some bit combination of a fixed length, called convolution. Hash functions have a variety of uses for conducting statistical experiments, testing logic devices, and building fast search algorithms and checking the integrity of records in databases. The main requirement for hash functions is the uniform distribution of their values ​​with a random choice of argument values.
A cryptographic hash function is any hash function that is crypto-resistant, that is, satisfies a number of requirements specific to cryptographic applications. In cryptography, hash functions are used to solve the following tasks:
- building data integrity control systems during their transfer or storage,
- data source authentication.
http://habrahabr.ru/post/93226/