List of hash functions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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

Script error: No such module "Unsubst".

Cyclic redundancy checks

Script error: No such module "Labelled list hatnote".

Name Length Type
cksum (Unix) 32 bits CRC with length appended
CRC-8 8 bits CRC
CRC-16 16 bits CRC
CRC-32 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

Script error: No such module "Labelled list hatnote".

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

Universal hash function families

Script error: No such module "Labelled list hatnote".

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

Non-cryptographic hash functions

Script error: No such module "Labelled list hatnote".

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 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[3] 32 or 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 or 128 bits product/rotation
t1ha (Fast Positive Hash)[9] 64 or 128 bits product/rotation/XOR/add
GxHash[10] 32, 64 or 128 bits AES block cipher
pHash[11] fixed or variable see Perceptual hashing
dhash[12] 128 bits see Perceptual hashing
SDBM [2][13] 32 or 64 bits mult/add or shift/add
also used in GNU AWK
OSDB hash[14] 64 bits add
komihash[15] 64 bits product/split/add/XOR

Keyed cryptographic hash functions

Script error: No such module "Labelled list hatnote".

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[16] 64, 128 or 256 bits non-collision-resistant PRF
UMAC
VMAC

Unkeyed cryptographic hash functions

Script error: No such module "Labelled list hatnote". Script error: No such module "Labelled list hatnote".

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

See also

References

Template:Reflist

  1. Script error: No such module "citation/CS1".
  2. a b Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Template:GitHub
  5. Template:GitHub
  6. Template:GitHub
  7. Perl code at top half of page, English text at bottom half Template:Webarchive
  8. Template:GitHub
  9. Script error: No such module "citation/CS1".
  10. Template:GitHub
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Script error: No such module "citation/CS1".
  14. Script error: No such module "citation/CS1".
  15. Template:GitHub
  16. Template:GitHub
  17. a b c d e Script error: No such module "Citation/CS1".
  18. Script error: No such module "citation/CS1".
  19. Script error: No such module "citation/CS1".