So how can we categorise hashes?
Hashes can be used for a few distinctly different tasks. We've tried to categorise these below.
A checksum is a fixed size value computed from a block of digital data for the purpose of detecting accidental errors. Most hashes can be used as checksums, however checksums cannot be used as cryptographic hashes.
A cryptographic hash function is a procedure that takes an arbitrary block of data and returns a fixed-size bit string, such that an accidental or intentional change to the data will change the hash value. The ideal cryptographic hash function has four main properties: it is easy to compute the hash value for any given message, it is difficult to find a message that has a given hash, it is difficult to modify a message without changing its hash, and it is difficult to find two different messages with the same hash.