List of hash functions


This is a list of hash functions, including cyclic redundancy checks, [|checksum] functions, and cryptographic hash functions.

Cyclic redundancy checks

NameLengthType
cksum 32 bitsCRC with length appended
CRC-88 bitsCRC
CRC-1616 bitsCRC
CRC-3232 bitsCRC
CRC-6464 bitsCRC

Adler-32 is often mistaken for a CRC, but it is not: it is a checksum.

Checksums

NameLengthType
BSD checksum 16 bitssum with circular rotation
SYSV checksum 16 bitssum with circular rotation
sum88 bitssum
Internet Checksum16 bitssum
sum2424 bitssum
sum3232 bitssum
fletcher-44 bitssum
fletcher-88 bitssum
fletcher-1616 bitssum
fletcher-3232 bitssum
Adler-3232 bitssum
xor88 bitssum
Luhn algorithm1 decimal digitsum
Verhoeff algorithm1 decimal digitsum
Damm algorithm1 decimal digitQuasigroup operation

Universal hash function families

NameLengthType
Rabin fingerprintvariablemultiply
tabulation hashingvariableXOR
universal one-way hash function
Zobrist hashingvariableXOR

Non-cryptographic hash functions

NameLengthType
Pearson hashing8 bits XOR/table
Paul Hsieh's SuperFastHash32 bits
BuzhashvariableXOR/table
Fowler–Noll–Vo hash function
32, 64, 128, 256,
512, or 1024 bits
xor/product or
product/XOR
Jenkins hash function32 or 64 bitsXOR/addition
Bernstein's hash djb232 or 64 bitsshift/add or mult/add
or shift/add/xor or mult/xor
PJW hash / ELF hash32 or 64 bitsadd,shift,xor
MurmurHash32, 64, or 128 bitsproduct/rotation
Fast-Hash32 or 64 bitsxorshift operations
SpookyHash32, 64, or 128 bitssee Jenkins hash function
CityHash32, 64, 128, or 256 bits
FarmHash32, 64 or 128 bits
MetroHash64 or 128 bits
numeric hash variabledivision/modulo
xxHash32, 64 or 128 bitsproduct/rotation
t1ha 64 or 128 bitsproduct/rotation/XOR/add
GxHash32, 64 or 128 bitsAES block cipher
pHashfixed or variablesee Perceptual hashing
dhash128 bitssee Perceptual hashing
SDBM32 or 64 bitsmult/add or shift/add
also used in GNU AWK
OSDB hash64 bitsadd
komihash64 bitsproduct/split/add/XOR

Keyed cryptographic hash functions

NameTag LengthType
BLAKE2keyed hash function
BLAKE3256 bitskeyed hash function
HMAC
KMACarbitrarybased on Keccak
MD6up to 512 bitsMerkle tree NLFSR
One-key MAC
PMAC
Poly1305-AES128 bitsnonce-based
SipHash32, 64 or 128 bitsnon-collision-resistant PRF
HighwayHash64, 128 or 256 bitsnon-collision-resistant PRF
UMAC
VMAC

Unkeyed cryptographic hash functions

NameLengthType
BLAKE-256256 bitsHAIFA structure
BLAKE-512512 bitsHAIFA structure
BLAKE2sup to 256 bitsHAIFA structure
BLAKE2bup to 512 bitsHAIFA structure
BLAKE2XarbitraryHAIFA structure, extendable-output functions design
BLAKE3arbitraryMerkle tree
ECOH224 to 512 bitshash
FSB160 to 512 bitshash
GOST256 bitshash
Grøstlup to 512 bitshash
HAS-160160 bitshash
HAVAL128 to 256 bitshash
JH224 to 512 bitshash
LSH256 to 512 bitswide-pipe Merkle–Damgård construction
MD2128 bitshash
MD4128 bitshash
MD5128 bitsMerkle–Damgård construction
MD6up to 512 bitsMerkle tree NLFSR
RadioGatúnarbitraryideal mangling function
RIPEMD128 bitshash
RIPEMD-128128 bitshash
RIPEMD-160160 bitshash
RIPEMD-256256 bitshash
RIPEMD-320320 bitshash
SHA-1160 bitsMerkle–Damgård construction
SHA-224224 bitsMerkle–Damgård construction
SHA-256256 bitsMerkle–Damgård construction
SHA-384384 bitsMerkle–Damgård construction
SHA-512512 bitsMerkle–Damgård construction
SHA-3 arbitrarysponge function
SkeinarbitraryUnique Block Iteration
Snefru128 or 256 bitshash
Spectral Hash512 bitswide-pipe Merkle–Damgård construction
Streebog256 or 512 bitsMerkle–Damgård construction
SWIFFT512 bitshash
Tiger192 bitsMerkle–Damgård construction
Whirlpool512 bitshash