A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage.

By themselves, checksums are often used to verify data integrity but are not relied upon to verify data authenticity.

Checksum functions are related to hash functions, fingerprints, randomization functions, and cryptographic hash functions. However, each of those concepts has different applications and therefore different design goals. For instance, a function returning the start of a string can provide a hash appropriate for some applications but will never be a suitable checksum.

Checksums are used as Cryptographic Primitive in larger authentication algorithms.

For cryptographic systems with these two specific design goals, see HMAC.