arvau

Wikipedia / List of hash functions

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

Cyclic redundancy checks

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

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

Name

Length

Type

Rabin fingerprint

variable

multiply

tabulation hashing

variable

XOR

universal one-way hash function

Zobrist hashing

variable

XOR

Non-cryptographic hash functions

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(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

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

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 also used in GNU AWK

OSDB hash

64 bits

add

komihash

64 bits

product/split/add/XOR

Keyed cryptographic hash functions

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

Name

Length

Type

BLAKE-256

256 bits

HAIFA structure

BLAKE-512

512 bits

HAIFA structure

BLAKE2s

up to 256 bits

HAIFA structure

BLAKE2b

up to 512 bits

HAIFA structure

BLAKE2X

arbitrary

HAIFA structure, extendable-output functions (XOFs) design

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

References