Jump to content

List of hash functions

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by TSJSwimmer (talk | contribs) at 21:42, 29 July 2020 (Non-cryptographic hash functions: Added 128 bits to xxHash). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

Cyclic redundancy checks

Name Length Type
cksum (Unix) 32 bits CRC with length appended
CRC-16 16 bits CRC
CRC-32 32 bits CRC
CRC-32 MPEG-2 32 bits CRC
CRC-64 64 bits CRC

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

Checksums

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
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
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

Universal hash function families

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

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's hash djb2[2] 32 bits
PJW hash / Elf Hash 32 or 64 bits add,shift,xor
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, 128 bits product/rotation
t1ha (Fast Positive Hash)[9] 64 and 128 bits product/rotation/XOR/add
pHash [10] fixed or variable see Perceptual hashing
dhash[11] 128 bits see Perceptual hashing

Keyed cryptographic hash functions

Name Tag Length Type
BLAKE2 arbitrary keyed hash function (prefix-MAC)
BLAKE3 arbitrary keyed hash function (supplied IV)
HMAC
KMAC arbitrary based on Keccak
MD6 512 bits Merkle tree NLFSR
One-key MAC (OMAC; CMAC)
PMAC (cryptography)
Poly1305-AES 128 bits nonce-based
SipHash 64 bits non-collision-resistant PRF
HighwayHash[12] 64, 128 or 256 bits non-collision-resistant PRF
UMAC
VMAC

Unkeyed cryptographic hash functions

Name Length Type
BLAKE-256 256 bits HAIFA structure[13]
BLAKE-512 512 bits HAIFA structure[13]
BLAKE2s up to 256 bits HAIFA structure[13]
BLAKE2b up to 512 bits HAIFA structure[13]
BLAKE2X arbitrary HAIFA structure,[13] extensible-output functions (XOFs) design[14]
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[15] 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-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

See also

References

  1. ^ "Hash functions". www.azillionmonkeys.com. Retrieved 2015-06-10.
  2. ^ "Hash functions". www.cse.yorku.ca. Retrieved 2020-06-16.
  3. ^ Zilong Tan. "fast-hash on Github".
  4. ^ cityhash on GitHub
  5. ^ farmhash on GitHub
  6. ^ MetroHash on GitHub
  7. ^ Perl code at top half of page, English text at bottom half
  8. ^ xxHash on GitHub
  9. ^ Leonid Yuriev. "t1ha on Github".
  10. ^ "pHash.org: Home of pHash, the open source perceptual hash library". pHash.org. Retrieved 2020-06-16.
  11. ^ "dhash". PyPI. 2017-08-23. Retrieved 2020-06-16.
  12. ^ highwayhash on GitHub
  13. ^ a b c d e Eli Biham and Orr Dunkelman (20 July 2007). "A Framework for Iterative Hash Functions – HAIFA". {{cite journal}}: Cite journal requires |journal= (help)
  14. ^ Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn, and Christian Winnerlein (3 December 2016). "BLAKE2X" (PDF). {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  15. ^ Kim, Dong-Chan; Hong, Deukjo; Lee, Jung-Keun; Kim and, Woo-Hwan; Kwon, Daesung (2016). "LSH: A New Fast Secure Hash Function Family" (PDF). {{cite journal}}: Cite journal requires |journal= (help)