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.
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 2^{mh*} 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 2^{mh*} candidates for M. The appearance of the candidates may provide further deductive clues, but not the hash.
The requirements of a hashing algorithm are:
Even distribution, every hash string is associated with about the same number of M (prehash) 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.

