Understanding hash, digest, checksum, and fingerprint
While "hash," "digest," "checksum," and "fingerprint" are related concepts and sometimes used interchangeably, their usage depends on context and technical precision. Hereβs a breakdown:
1. Hash
A hash is the general term for the output of a hashing algorithm.
It is a fixed-size value derived from input data of arbitrary size.
Used in many applications, including data structures (hash tables), cryptography, and integrity verification.
Example:
SHA-256("hello") β "2cf24dba5..."
2. Digest (Message Digest)
A digest is a cryptographic hash, often used specifically for verifying data integrity.
Historically tied to algorithms like MD5 (Message Digest 5) or SHA-1.
Emphasizes the idea of "summarizing" data into a fixed-size representation.
Example:
MD5("hello") β "5d41402a..."
3. Checksum
A checksum is a simpler form of hash, typically used for error detection (not cryptographic security).
Often smaller in size (e.g., CRC32, Adler-32).
Designed to detect accidental changes (e.g., file corruption, network errors).
Example:
CRC32("hello") β 3610a686
4. Fingerprint
A fingerprint is a hash used to uniquely identify data (like a human fingerprint).
Often applied to public keys (e.g., SSH key fingerprints) or file identities.
May be a shortened or formatted version of a hash for readability.
Example:
SHA-256 fingerprint of an SSH key β "SHA256:AbCdE..."
Key Differences:
Hash
General-purpose, data structures, cryptography
Varies (weak to strong)
SHA-256, MurmurHash
Digest
Cryptographic integrity checks
Strong (usually)
MD5, SHA-1, SHA-256
Checksum
Error detection (non-crypto)
Weak
CRC32, Adler-32
Fingerprint
Unique identification
Strong (usually)
Truncated SHA-256
When They Overlap:
A cryptographic hash (e.g., SHA-256) can be called a digest, hash, or fingerprint depending on context.
A checksum is technically a hash but is rarely cryptographic.
Fingerprint implies human-readable identification, often derived from a hash.
Summary:
Hash = Broad term for any fixed-size output from a hashing function.
Digest = Cryptographic hash used for integrity (common in older algorithms like MD5).
Checksum = Simple hash for error detection (not secure against tampering).
Fingerprint = Human-friendly hash for identification (e.g., SSH keys).
Last updated