The checksum is a way to hash a chunk of data in an attempt to verify its integrity, better than the parity bit.

The traditional checksum involves adding up the bytes or words in the data chunk. (Thus check sum.) It is easy to find two chunks of data with the same traditional checksum, even accidently, so crc32 was invented in attempt for higher likelihood of uniqueness of the hash.

But it is still easy to intentionally calculate a second set of data with the same crc32 checksum (just less likely to do accidently), so md4, md5, SHA, and others were created. These fingerprint data in a way that is suppose to be cryptographically secure. No easy method has (yet) been found to calculate a dataset with a particular md5.