This is a list of hash functions, including cyclic redundancy checks, checksum functions, and cryptographic hash functions.
Cyclic redundancy checks
{| class="wikitable sortable mw-collapsible"
!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
{| class="wikitable sortable mw-collapsible"
|-
!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
{| class="wikitable sortable mw-collapsible"
|-
!Name
!Length
!Type
|-
|Rabin fingerprint
| variable
| multiply
|-
|tabulation hashing
| variable
| XOR
|-
|universal one-way hash function
|
|
|-
|Zobrist hashing
| variable
| XOR
|-
|}
Non-cryptographic hash functions
{| class="wikitable sortable mw-collapsible"
|-
!Name
!Length
!Type
|-
|Pearson hashing
|8 bits (or more)
|XOR/table
|-
|Paul Hsieh's SuperFastHash
|32 bits
|
|-
|Buzhash
|variable
|XOR/table
|-
|Fowler–Noll–Vo hash function<br>(FNV hash)
|32, 64, 128, 256,<br> 512, or 1024 bits
|xor/product or <br> product/XOR
|-
|Jenkins hash function
|32 or 64 bits
| XOR/addition
|-
|Bernstein's hash djb2
|32 or 64 bits
| shift/add or mult/add <br> 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
|32 or 64 bits
| xorshift operations
|-
|SpookyHash
|32, 64, or 128 bits
|see Jenkins hash function
|-
|CityHash
|32, 64, 128, or 256 bits
|
|-
|FarmHash
|32, 64 or 128 bits
|
|-
|MetroHash
|64 or 128 bits
|
|-
|numeric hash (nhash)
|variable
|division/modulo
|-
|xxHash
|32, 64 or 128 bits
|product/rotation
|-
|t1ha (Fast Positive Hash)
|64 or 128 bits
|product/rotation/XOR/add
|-
|GxHash
|32, 64 or 128 bits
|AES block cipher
|-
|pHash
|fixed or variable
|see Perceptual hashing
|-
|dhash
|128 bits
|see Perceptual hashing
|-
|SDBM
|32 or 64 bits
|mult/add or shift/add <br> also used in GNU AWK
|-
| OSDB hash
|64 bits
|add
|-
|komihash
|64 bits
|product/split/add/XOR
|}
Keyed cryptographic hash functions
{| class="wikitable sortable mw-collapsible"
|-
!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
|64, 128 or 256 bits
|non-collision-resistant PRF
|-
|UMAC
|
|
|-
|VMAC
|
|
|-
|}
Unkeyed cryptographic hash functions
{| class="wikitable sortable mw-collapsible"
|-
!Name
!Length
!Type
|-
|BLAKE-256
|256 bits
|HAIFA structure
|-
|BLAKE-512
|512 bits
|HAIFA structure
|-
|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
|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)
