List of hash functions
This is a list of hash functions, including cyclic redundancy checks, checksum functions, and cryptographic hash functions.
01Cyclic redundancy checks
02Checksums
| Name | Length | Type |
|---|---|---|
| BSD checksum (Unix) | 16 bits | sum with circular rotation |
| SYSV checksum (Unix) | 16 bits | sum with circular rotation |
| sum8 | 8 bits | sum |
| Internet Checksum | 16 bits | sum (ones' complement) |
| sum24 | 24 bits | sum |
| sum32 | 32 bits | sum |
| fletcher-4 | 4 bits | sum |
| fletcher-8 | 8 bits | sum |
| fletcher-16 | 16 bits | sum |
| fletcher-32 | 32 bits | sum |
| Adler-32 | 32 bits | sum |
| xor8 | 8 bits | sum |
| Luhn algorithm | 1 decimal digit | sum |
| Verhoeff algorithm | 1 decimal digit | sum |
| Damm algorithm | 1 decimal digit | Quasigroup operation |
03Universal hash function families
| Name | Length | Type |
|---|---|---|
| Rabin fingerprint | variable | multiply |
| tabulation hashing | variable | XOR |
| universal one-way hash function | ||
| Zobrist hashing | variable | XOR |
04Non-cryptographic hash functions
| Name | Length | Type |
|---|---|---|
| Pearson hashing | 8 bits (or more) | XOR/table |
| Paul Hsieh's SuperFastHash | 32 bits | |
| Buzhash | variable | XOR/table |
| Fowler-Noll-Vo hash function (FNV hash) |
32, 64, 128, 256, 512, or 1024 bits |
xor/product or product/XOR |
| Jenkins hash function | 32 or 64 bits | XOR/addition |
| Bernstein's hash djb2 | 32 or 64 bits | shift/add or mult/add or shift/add/xor or mult/xor |
| PJW hash / ELF hash | 32 or 64 bits | add,shift,xor |
| MurmurHash | 32, 64, or 128 bits | product/rotation |
| Fast-Hash | 32 or 64 bits | xorshift operations |
| SpookyHash | 32, 64, or 128 bits | see Jenkins hash function |
| CityHash | 32, 64, 128, or 256 bits | |
| FarmHash | 32, 64 or 128 bits | |
| MetroHash | 64 or 128 bits | |
| numeric hash (nhash) | variable | division/modulo |
| xxHash | 32, 64 or 128 bits | product/rotation |
| t1ha (Fast Positive Hash) | 64 or 128 bits | product/rotation/XOR/add |
| GxHash | 32, 64 or 128 bits | AES block cipher |
| pHash | fixed or variable | see Perceptual hashing |
| dhash | 128 bits | see Perceptual hashing |
| SDBM | 32 or 64 bits | mult/add or shift/add also used in GNU AWK |
| OSDB hash | 64 bits | add |
| komihash | 64 bits | product/split/add/XOR |
05Keyed cryptographic hash functions
| Name | Tag Length | Type |
|---|---|---|
| BLAKE2 | keyed hash function (prefix-MAC) | |
| BLAKE3 | 256 bits | keyed hash function (supplied IV) |
| HMAC | ||
| KMAC | arbitrary | based on Keccak |
| MD6 | up to 512 bits | Merkle tree NLFSR (it is also an unkeyed hash function) |
| One-key MAC (OMAC; CMAC) | ||
| PMAC (cryptography) | ||
| Poly1305-AES | 128 bits | nonce-based |
| SipHash | 32, 64 or 128 bits | non-collision-resistant PRF |
| HighwayHash | 64, 128 or 256 bits | non-collision-resistant PRF |
| UMAC | ||
| VMAC |
06Unkeyed cryptographic hash functions
| Name | Length | Type |
|---|---|---|
| BLAKE-256 | 256 bits | HAIFA structure |
| BLAKE-512 | 512 bits | HAIFA structure |
| BLAKE2s | up to 256 bits | HAIFA structure |
| BLAKE2b | up to 512 bits | HAIFA structure |
| BLAKE2X | arbitrary | HAIFA structure, extendable-output functions (XOFs) design |
| BLAKE3 | arbitrary | Merkle tree |
| ECOH | 224 to 512 bits | hash |
| FSB | 160 to 512 bits | hash |
| GOST | 256 bits | hash |
| Grøstl | up to 512 bits | hash |
| HAS-160 | 160 bits | hash |
| HAVAL | 128 to 256 bits | hash |
| JH | 224 to 512 bits | hash |
| LSH | 256 to 512 bits | wide-pipe Merkle-Damgård construction |
| MD2 | 128 bits | hash |
| MD4 | 128 bits | hash |
| MD5 | 128 bits | Merkle-Damgård construction |
| MD6 | up to 512 bits | Merkle tree NLFSR (it is also a keyed hash function) |
| RadioGatún | arbitrary | ideal mangling function |
| RIPEMD | 128 bits | hash |
| RIPEMD-128 | 128 bits | hash |
| RIPEMD-160 | 160 bits | hash |
| RIPEMD-256 | 256 bits | hash |
| RIPEMD-320 | 320 bits | hash |
| SHA-1 | 160 bits | Merkle-Damgård construction |
| SHA-224 | 224 bits | Merkle-Damgård construction |
| SHA-256 | 256 bits | Merkle-Damgård construction |
| SHA-384 | 384 bits | Merkle-Damgård construction |
| SHA-512 | 512 bits | Merkle-Damgård construction |
| SHA-3 (subset of Keccak) | arbitrary | sponge function |
| Skein | arbitrary | Unique Block Iteration |
| Snefru | 128 or 256 bits | hash |
| Spectral Hash | 512 bits | wide-pipe Merkle-Damgård construction |
| Streebog | 256 or 512 bits | Merkle-Damgård construction |
| SWIFFT | 512 bits | hash |
| Tiger | 192 bits | Merkle-Damgård construction |
| Whirlpool | 512 bits | hash |
Sources and credits
This article is adapted from the Wikipedia article “List of hash functions”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.