List of hash functions

Short description: none

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

This list is incomplete; you can help by expanding it.

## Contents

* 1 Cyclic redundancy checks
* 2 Checksums
* 3 Universal hash function families
* 4 Non-cryptographic hash functions
* 5 Keyed cryptographic hash functions
* 6 Unkeyed cryptographic hash functions
* 7 See also
* 8 References

## Cyclic redundancy checks

Main article: Cyclic redundancy check

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

Main article: Checksum

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

Main article: Universal hashing

Name  | Length  | Type

|
|

Rabin fingerprint | variable  | multiply
tabulation hashing | variable  | XOR
universal one-way hash function |  |
Zobrist hashing | variable  | XOR

## Non-cryptographic hash functions

Main article: Non-cryptographic hash function

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

Main article: Message authentication code

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

Main article: Cryptographic hash function

See also: Comparison of cryptographic hash functions

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

* Hash function security summary
* Secure Hash Algorithms
* NIST hash function competition
* Key derivation functions (category)

## References

1. ↑ "Hash functions". https://www.azillionmonkeys.com/qed/hash.html.
2. ↑ 2.0 2.1 "Hash functions". http://www.cse.yorku.ca/~oz/hash.html.
3. ↑ Zilong Tan (31 December 2021). "fast-hash on Github". https://github.com/ZilongTan/fast-hash.
4. ↑ on GitHub
5. ↑ on GitHub
6. ↑ on GitHub
7. ↑ Perl code at top half of page, English text at bottom half
8. ↑ on GitHub
9. ↑ Leonid Yuriev (25 January 2022). "t1ha on Github". https://github.com/leo-yuriev/t1ha.
10. ↑ on GitHub
11. ↑ "pHash.org: Home of pHash, the open source perceptual hash library". http://www.phash.org/.
12. ↑ "dhash". 2017-08-23. https://pypi.org/project/dhash/.
13. ↑ "original SDBM source code". https://github.com/davidar/sdbm/blob/29d5ed2b5297e51125ee45f6efc5541851aab0fb/hash.c#L18-L47.
14. ↑ "HashSourceCodes". https://trac.opensubtitles.org/projects/opensubtitles/wiki/HashSourceCodes.
15. ↑ on GitHub
16. ↑ on GitHub
17. ↑ 17.0 17.1 17.2 17.3 17.4 Eli Biham and Orr Dunkelman (20 July 2007). "A Framework for Iterative Hash Functions – HAIFA". Cryptology ePrint Archive. http://eprint.iacr.org/2007/278.
18. ↑ Aumasson, Jean-Philippe; Neves, Samuel; Wilcox-O’Hearn, Zooko; Winnerlein, Christian (3 December 2016). "BLAKE2X". https://blake2.net/blake2x.pdf.
19. ↑ Kim, Dong-Chan; Hong, Deukjo; Lee, Jung-Keun; Kim and, Woo-Hwan; Kwon, Daesung (2016). "LSH: A New Fast Secure Hash Function Family". Information Security and Cryptology - ICISC 2014. Lecture Notes in Computer Science. 8949. pp. 286–313. doi:10.1007/978-3-319-15943-0_18. ISBN 978-3-319-15942-3. https://pdfs.semanticscholar.org/567d/09feb818cc156d2b1e8def1b4bfff63f8e91.pdf.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/List of hash functions. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=List_of_hash_functions&oldid=4296467"