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)

References