Jump to content

List of hash functions

From Wikipedia, the free encyclopedia

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

Cyclic redundancy checks

[edit]
NameLengthType
cksum (Unix)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

[edit]
NameLengthType
BSD checksum (Unix)16 bitssum with circular rotation
SYSV checksum (Unix)16 bitssum with circular rotation
sum88 bitssum
Internet Checksum16 bitssum (ones' complement)
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

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

Non-cryptographic hash functions

[edit]
NameLengthType
Pearson hashing8 bits (or more)XOR/table
Paul Hsieh's SuperFastHash[1]32 bits
BuzhashvariableXOR/table
Fowler–Noll–Vo hash function
(FNV Hash)
32, 64, 128, 256,
512, or 1024 bits
xor/product or
product/XOR
Jenkins hash function32 or 64 bitsXOR/addition
Bernstein's hash djb2[2]32 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-Hash[3]32 or 64 bitsxorshift operations
SpookyHash32, 64, or 128 bitssee 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]variabledivision/modulo
xxHash[8]32, 64 or 128 bitsproduct/rotation
t1ha (Fast Positive Hash)[9]64 or 128 bitsproduct/rotation/XOR/add
GxHash[10]32, 64 or 128 bitsAES block cipher
pHash[11]fixed or variablesee Perceptual hashing
dhash[12]128 bitssee Perceptual hashing
SDBM [2][13]32 or 64 bitsmult/add or shift/add
also used in GNU AWK
OSDB hash[14]64 bitsadd
komihash[15]64 bitsproduct/split/add/XOR

Keyed cryptographic hash functions

[edit]
NameTag LengthType
BLAKE2keyed hash function (prefix-MAC)
BLAKE3256 bitskeyed hash function (supplied IV)
HMAC
KMACarbitrarybased on Keccak
MD6512 bitsMerkle tree NLFSR
One-key MAC (OMAC; CMAC)
PMAC (cryptography)
Poly1305-AES128 bitsnonce-based
SipHash32, 64 or 128 bitsnon-collision-resistant PRF
HighwayHash[16]64, 128 or 256 bitsnon-collision-resistant PRF
UMAC
VMAC

Unkeyed cryptographic hash functions

[edit]
NameLengthType
BLAKE-256256 bitsHAIFA structure[17]
BLAKE-512512 bitsHAIFA structure[17]
BLAKE2sup to 256 bitsHAIFA structure[17]
BLAKE2bup to 512 bitsHAIFA structure[17]
BLAKE2XarbitraryHAIFA structure,[17] extendable-output functions (XOFs) design[18]
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
LSH[19]256 to 512 bitswide-pipe Merkle–Damgård construction
MD2128 bitshash
MD4128 bitshash
MD5128 bitsMerkle–Damgård construction
MD6up to 512 bitsMerkle tree NLFSR (it is also a keyed hash function)
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 (subset of Keccak)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

See also

[edit]

References

[edit]
  1. ^ "Hash functions". www.azillionmonkeys.com. Retrieved 2015-06-10.
  2. ^ a b "Hash functions". www.cse.yorku.ca. Retrieved 2020-06-16.
  3. ^ Zilong Tan (31 December 2021). "fast-hash on ". .
  4. ^ cityhash on
  5. ^ farmhash on
  6. ^ MetroHash on
  7. ^ Perl code at top half of page, English text at bottom half Archived 2016-03-04 at the Wayback Machine
  8. ^ xxHash on
  9. ^ Leonid Yuriev (25 January 2022). "t1ha on ". .
  10. ^ gxhash on
  11. ^ "pHash.org: Home of pHash, the open source perceptual hash library". pHash.org. Retrieved 2020-06-16.
  12. ^ "dhash". PyPI. 2017-08-23. Retrieved 2020-06-16.
  13. ^ "original SDBM source code". mirror repository. Retrieved 2020-10-30.
  14. ^ "HashSourceCodes". OpenSubtitles. Retrieved 2022-08-08.
  15. ^ komihash on
  16. ^ highwayhash on
  17. ^ a b c d e Eli Biham and Orr Dunkelman (20 July 2007). "A Framework for Iterative Hash Functions – HAIFA". Cryptology ePrint Archive.
  18. ^ Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn, and Christian Winnerlein (3 December 2016). "BLAKE2X" (PDF).{{cite web}}: CS1 maint: multiple names: authors list (link)
  19. ^ Kim, Dong-Chan; Hong, Deukjo; Lee, Jung-Keun; Kim and, Woo-Hwan; Kwon, Daesung (2016). "LSH: A New Fast Secure Hash Function Family" (PDF). Information Security and Cryptology - ICISC 2014. Lecture Notes in Computer Science. Vol. 8949. pp. 286–313. doi:10.1007/978-3-319-15943-0_18. ISBN 978-3-319-15942-3. S2CID 35700807. Archived from the original (PDF) on 2018-10-08.