The cryptographic Hashing Environment consists of the message, M to be protected from modification, the hash h that provides the protection, the hashing algorithm H, and an optional hashing key K.
Even distribution, every hash string is associated with about the same number of M (pre-hash) strings.
Given the hash, h, it is intractable to generate the M, but the opposite, M to h is easy
Strong collision protection: it is intractable to find two messages: M' and M'' that share the same hash.
The message M is assumed to be of any desired size or of a large size within some limits, and the hash h is normally (but not necessarily) assumed to be of a fixed size, h*.
Nominally the size m (bits count) of M is much larger than h* -- the hash size, and since every M of size m has a hash, it is necessary that on average 2m-h* strings of size m share the same hash. This in turn means that the message M is protected from being deciphered from the hash by the principle of equivocation. Namely: an adversary of unlimited computing power who is in possession of the hash and not in possession of M will be looking at 2m-h* candidates for M. The appearance of the candidates may provide further deductive clues, but not the hash.
The requirements of a hashing algorithm are: