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.