# List of hash functions

(Redirected from List of checksum algorithms)

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

## Cyclic redundancy checks

Name Length Type
BSD checksum 16 bits CRC
Checksum 32 bits CRC
CRC-16 16 bits CRC
CRC-32 32 bits CRC
CRC-32 MPEG-2 32 bits CRC
CRC-64 64 bits CRC
SYSV checksum 16 bits CRC

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

## Checksums

Name Length Type
sum (Unix) 16 or 32 bits sum
sum8 8 bits sum
sum16 16 bits sum
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
xor8 8 bits sum
Luhn algorithm 1 decimal digit sum
Verhoeff algorithm 1 decimal digit sum
Damm algorithm 1 decimal digit Quasigroup operation

## Universal hash function families

Name Length Type
Zobrist hashing variable XOR
universal one-way hash function
tabulation hashing variable XOR
Rabin fingerprint variable multiply

## Non-cryptographic hash functions

Name Length Type
Pearson hashing 8 bits (or more) XOR/table
Paul Hsieh's SuperFastHash[1] 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 hash djb2[2] 32 bits
PJW hash / Elf Hash 32 or 64 bits
MurmurHash 32, 64, or 128 bits product/rotation
Fast-Hash[3] 32, 64 bits Xorshift operations
SpookyHash 32, 64, or 128 bits see Jenkins hash function
CityHash[4] 32, 64, 128, or 256 bits
FarmHash[5] 32, 64 or 128 bits
MetroHash[6] 64 or 128 bits
numeric hash (nhash)[7] variable Division/Modulo
xxHash[8] 32, 64 bits product/rotation
t1ha (Fast Positive Hash)[9] 64 and 128 bits product/rotation/XOR/add

## Keyed cryptographic hash functions

Name Tag Length Type
VMAC
UMAC
BLAKE2 up to 512 bits keyed hash function (prefix-MAC)
Poly1305-AES 128 bits nonce-based
PMAC (cryptography)
SipHash 64 bits non-collision-resistant PRF
One-key MAC (OMAC; CMAC)
MD6 512 bits Merkle tree NLFSR
HMAC

## Unkeyed cryptographic hash functions

Name Length Type
BLAKE-256 256 bits HAIFA structure[10]
BLAKE-512 512 bits HAIFA structure[10]
BLAKE2s Up to 256 bits HAIFA structure[10]
BLAKE2b Up to 512 bits HAIFA structure[10]
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[11] 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)
RIPEMD 128 bits hash
RIPEMD-128 128 bits hash
RIPEMD-160 160 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 (originally known as 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

## References

1. ^ "Hash functions". www.azillionmonkeys.com. Retrieved 2015-06-10.
2. ^ http://www.cse.yorku.ca/~oz/hash.html
3. ^ Zilong Tan. "fast-hash on Github".
4. ^
5. ^
6. ^
7. ^ Perl code at top half of page, English text at bottom half
8. ^
9. ^ Leonid Yuriev. "t1ha on Github".
10. ^ a b c d Eli Biham and Orr Dunkelman (20 July 2007). "A Framework for Iterative Hash Functions – HAIFA".
11. ^ Kim, Dong-Chan; Hong, Deukjo; Lee, Jung-Keun; Kim and, Woo-Hwan; Kwon, Daesung (2016). "LSH: A New Fast Secure Hash Function Family" (PDF).