A cryptographic hash function (CHF) is an equation used to verify the validity of data. It has many applications, notably in information security (e.g. user authentication).
A CHF translates data of various lengths — the message — into a fixed size numerical string — the hash. A CHF is a single direction work, making it extraordinarily difficult to reverse in order to recreate the information used to make it.
A sound CHF will produce the same hash value for the message used to create it (deterministic). It should also be impracticable to regenerate the message, or to find two messages with the same hash value. In addition, alterations to a message that creates a hash, in the same hashing algorithm, should result in considerable alterations in the hash value (avalanche effect). A sound CHF should also be able to withstand to all known forms attacks on the hashing equation itself but also would withstand side-channel attacks, meaning assaults not on the equation itself but on how these equations are implemented.
"It should be impossible to know what the input was to a secure cryptographic hash function simply by looking at the output."