List of hash functions
Encyclopedia
This is a list of hash function
s, including cyclic redundancy check
s, checksum
functions, and cryptographic hash function
s.
Adler-32
is often classified as a CRC, but it uses a different algorithm.
Hash function
A hash function is any algorithm or subroutine that maps large data sets to smaller data sets, called keys. For example, a single integer can serve as an index to an array...
s, including cyclic redundancy check
Cyclic redundancy check
A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data...
s, checksum
Checksum
A checksum or hash sum is a fixed-size datum computed from an arbitrary block of digital data for the purpose of detecting accidental errors that may have been introduced during its transmission or storage. The integrity of the data can be checked at any later time by recomputing the checksum and...
functions, and cryptographic hash function
Cryptographic hash function
A cryptographic hash function is a deterministic procedure that takes an arbitrary block of data and returns a fixed-size bit string, the hash value, such that an accidental or intentional change to the data will change the hash value...
s.
Cyclic redundancy checks
Name | Length | Type |
---|---|---|
BSD checksum BSD checksum The BSD checksum algorithm is commonly used, legacy checksum algorithms. It has been implemented in BSD and is also available through the GNU sum command line utility.-Newer checksum algorithms:... |
16 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
checksum | 32 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
crc16 | 16 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
crc32 | 32 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
crc32 mpeg2 | 32 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
crc64 | 64 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
SYSV checksum SYSV checksum The SYSV checksum algorithm is commonly used, legacy checksum algorithms.It has been implemented in UNIX System V and is also available through the GNU sum command line utility.-Newer checksum algorithms:... |
16 bits | CRC Cyclic redundancy check A cyclic redundancy check is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data... |
Adler-32
Adler-32
Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed. Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32...
is often classified as a CRC, but it uses a different algorithm.
Checksums
Name | Length | Type |
---|---|---|
sum8 | 8 bits | sum |
sum16 | 16 bits | sum |
sum24 | 24 bits | sum |
sum32 | 32 bits | sum |
fletcher-4 Fletcher's checksum The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John G. Fletcher at Lawrence Livermore Labs in the late 1970s. A description of the algorithm and an analysis of the performance characteristics of a particular implementation were published in the IEEE... |
4 bits | sum |
fletcher-8 Fletcher's checksum The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John G. Fletcher at Lawrence Livermore Labs in the late 1970s. A description of the algorithm and an analysis of the performance characteristics of a particular implementation were published in the IEEE... |
8 bits | sum |
fletcher-16 Fletcher's checksum The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John G. Fletcher at Lawrence Livermore Labs in the late 1970s. A description of the algorithm and an analysis of the performance characteristics of a particular implementation were published in the IEEE... |
16 bits | sum |
fletcher-32 Fletcher's checksum The Fletcher checksum is an algorithm for computing a position-dependent checksum devised by John G. Fletcher at Lawrence Livermore Labs in the late 1970s. A description of the algorithm and an analysis of the performance characteristics of a particular implementation were published in the IEEE... |
32 bits | sum |
Adler-32 Adler-32 Adler-32 is a checksum algorithm which was invented by Mark Adler in 1995, and is a modification of the Fletcher checksum. Compared to a cyclic redundancy check of the same length, it trades reliability for speed. Adler-32 is more reliable than Fletcher-16, and slightly less reliable than Fletcher-32... |
32 bits | sum |
xor8 Longitudinal redundancy check In telecommunication, a longitudinal redundancy check or horizontal redundancy check is a form of redundancy check that is applied independently to each of a parallel group of bit streams... |
8 bits | sum |
Luhn algorithm Luhn algorithm The Luhn algorithm or Luhn formula, also known as the "modulus 10" or "mod 10" algorithm,is a simple checksum formula used to validate a variety of identification numbers, such as credit card numbers, IMEI numbers, National Provider Identifier numbers in US and Canadian Social Insurance Numbers... |
4 bits | sum |
Verhoeff algorithm Verhoeff algorithm The Verhoeff algorithm, a checksum formula for error detection first published in 1969, was developed by Dutch mathematician Jacobus Verhoeff . Like the more widely known Luhn algorithm, it works with strings of decimal digits of any length... |
4 bits | sum |
Non-cryptographic hash functions
Name | Length | Type |
---|---|---|
Pearson hashing Pearson hashing Pearson hashing is a hash function designed for fast execution on processors with 8-bit registers. Given an input consisting of any number of bytes, it produces as output a single byte that is strongly dependent on every byte of the input... |
8 bits | |
Fowler–Noll–Vo hash function | 32, 64, 128, 256, 512, or 1024 bits |
xor/product or product/xor |
Zobrist hashing Zobrist hashing Zobrist hashing is a hash function construction used in computer programs that play abstract board games, such as chess and Go, to implement transposition tables, a special kind of hash table that is indexed by a board position and used to avoid analyzing the same position more than once... |
variable | xor |
Jenkins hash function Jenkins hash function The Jenkins hash functions are a collection of hash functions for multi-byte keys designed by Bob Jenkins. They can be used also as checksums to detect accidental data corruption or detect identical records in a database... |
32 or 64 bits | xor/addition |
Java hashCode Java hashCode In the Java programming language, every class must provide a hashCode method which digests the data stored in an instance of the class into a single hash value . This hash is used by other code when storing or manipulating the instance - the values are intended to be evenly distributed for varied... |
32 bits | |
Bernstein hash | 32 bits | |
elf64 | 64 bits | hash |
MurmurHash MurmurHash MurmurHash is a non-cryptographic hash function suitable for general hash-based lookup. It was created by Austin Appleby in 2008, and exists in a number of variants, all of which have been released into the public domain.-Variants:... |
32 or 64 bits | product/rotation |
CityHash CityHash CityHash is a family of non-cryptographic hash functions, designed for fast hashing of strings. It has 64-, 128-, and 256-bit variants.Google developed the algorithm in-house starting in 2010. The C++ source code for the reference implementation of the algorithm was released in 2011 under an MIT... |
64, 128, or 256 bits |
Cryptographic hash functions
Name | Length | Type |
---|---|---|
BLAKE BLAKE (hash function) BLAKE is a cryptographic hash function submitted to the NIST hash function competition by Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W. Phan. It is based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with some round constants, is added... -256 |
256 bits | hash |
BLAKE BLAKE (hash function) BLAKE is a cryptographic hash function submitted to the NIST hash function competition by Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W. Phan. It is based on Dan Bernstein's ChaCha stream cipher, but a permuted copy of the input block, XORed with some round constants, is added... -512 |
512 bits | hash |
ECOH Elliptic curve only hash The elliptic curve only hash algorithm was submitted as a candidate for SHA-3 in the NIST hash function competition. However, it was rejected in the beginning of the competition since a second pre-image attack was found.... |
224 to 512 bits | hash |
FSB Fast Syndrome Based Hash In cryptography, the Fast Syndrome-based hash Functions are a family of cryptographic hash functions introduced in 2003 by Daniel Augot, Matthieu Finiasz, and Nicolas Sendrier.... |
160 to 512 bits | hash |
GOST | 256 bits | hash |
Grøstl Grøstl Grøstl is a cryptographic hash function submitted to the NIST hash function competition by Praveen Gauravaram, Lars Knudsen, Krystian Matusiewicz, Florian Mendel, Christian Rechberger, Martin Schläffer, and Søren S. Thomsen. Grøstl was chosen as one of the five finalists of the competition. It uses... |
256 to 512 bits | hash |
HAS-160 HAS-160 HAS-160 is a cryptographic hash function designed for use with the Korean KCDSA digital signature algorithm. It is derived from SHA-1, with assorted changes intended to increase its security. It produces a 160-bit output.... |
160 bits | hash |
HAVAL HAVAL HAVAL is a cryptographic hash function. Unlike MD5, but like most modern cryptographic hash functions, HAVAL can produce hashes of different lengths. HAVAL can produce hashes in lengths of 128 bits, 160 bits, 192 bits, 224 bits, and 256 bits... |
128 to 256 bits | hash |
JH JH (hash function) JH is a cryptographic hash function submitted to the NIST hash function competition by Hongjun Wu. JH was chosen as one of the five finalists of the competition. JH has a 1024-bit state, and works on 512-bit input blocks... |
512 bits | hash |
Keccak Keccak Keccak is a cryptographic hash function designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. Keccak is one of five finalists in the NIST hash function competition to select a SHA-3 algorithm. The authors claim 12.5 cycles per byte on an Intel Core 2 CPU... |
512 bits | hash |
MD2 | 128 bits | hash |
MD4 MD4 The MD4 Message-Digest Algorithm is a cryptographic hash function developed by Ronald Rivest in 1990. The digest length is 128 bits. The algorithm has influenced later designs, such as the MD5, SHA-1 and RIPEMD algorithms.... |
128 bits | hash |
MD5 MD5 The MD5 Message-Digest Algorithm is a widely used cryptographic hash function that produces a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check data integrity... |
128 bits | Merkle-Damgård construction |
MD6 MD6 The MD6 Message-Digest Algorithm is a cryptographic hash function. It uses a Merkle tree-like structure to allow for immense parallel computation of hashes for very long inputs... |
512 bits | Merkle tree NLFSR NLFSR A NLFSR is a common component in modern stream ciphers, especially in RFID and smartcard applications. NLFSRs are known to be more resistant to cryptanalytic attacks than Linear Feedback Shift Registers , although construction of large NLFSRs with guaranteed long periods remains an open... |
RadioGatún RadioGatún RadioGatún is a cryptographic hash primitive created by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche. It was first publicly presented at the NIST Second Cryptographic Hash Workshop, held in Santa Barbara, California, on August 24–25, 2006, as part of the NIST hash function... |
Up to 1216 bits | hash |
RIPEMD RIPEMD RIPEMD-160 is a 160-bit message digest algorithm developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996... -64 |
64 bits | hash |
RIPEMD RIPEMD RIPEMD-160 is a 160-bit message digest algorithm developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996... -160 |
160 bits | hash |
RIPEMD RIPEMD RIPEMD-160 is a 160-bit message digest algorithm developed in Leuven, Belgium, by Hans Dobbertin, Antoon Bosselaers and Bart Preneel at the COSIC research group at the Katholieke Universiteit Leuven, and first published in 1996... -320 |
320 bits | hash |
SHA-1 | 160 bits | hash |
SHA-224 SHA-2 In cryptography, SHA-2 is a set of cryptographic hash functions designed by the National Security Agency and published in 2001 by the NIST as a U.S. Federal Information Processing Standard. SHA stands for Secure Hash Algorithm. SHA-2 includes a significant number of changes from its predecessor,... |
224 bits | hash |
SHA-256 SHA-2 In cryptography, SHA-2 is a set of cryptographic hash functions designed by the National Security Agency and published in 2001 by the NIST as a U.S. Federal Information Processing Standard. SHA stands for Secure Hash Algorithm. SHA-2 includes a significant number of changes from its predecessor,... |
256 bits | hash |
SHA-384 SHA-2 In cryptography, SHA-2 is a set of cryptographic hash functions designed by the National Security Agency and published in 2001 by the NIST as a U.S. Federal Information Processing Standard. SHA stands for Secure Hash Algorithm. SHA-2 includes a significant number of changes from its predecessor,... |
384 bits | hash |
SHA-512 SHA-2 In cryptography, SHA-2 is a set of cryptographic hash functions designed by the National Security Agency and published in 2001 by the NIST as a U.S. Federal Information Processing Standard. SHA stands for Secure Hash Algorithm. SHA-2 includes a significant number of changes from its predecessor,... |
512 bits | hash |
Skein Skein (hash function) Skein is a cryptographic hash function and one out of five finalists in the NIST hash function competition to design what will become the SHA-3 standard, the intended successor of SHA-1 and SHA-2... |
arbitrary | hash |
Snefru Snefru Snefru is a cryptographic hash function invented by Ralph Merklein 1990which supports 128-bit and 256-bit output. It was named after the Egyptian Pharaoh Sneferu, continuing the tradition of the Khufu and Khafre block ciphers.... |
128 or 256 bits | hash |
Spectral Hash Spectral Hash Spectral Hash is a cryptographic hash function submitted to the NIST hash function competition by Gokay Saldamlı, Cevahir Demirkıran, Megan Maguire, Carl Minden, Jacob Topper, Alex Troesch, Cody Walker, Çetin Kaya Koç. It uses a Merkle-Damgard construction and employs several mathematical... |
512 bits | Wide Pipe Merkle-Damgård construction |
SWIFFT SWIFFT In cryptography, SWIFFT is a collection of provably secure hash functions. It is based on the concept of the Fast Fourier Transform . SWIFFT is not the first hash function based on FFT, but it sets itself apart by providing a mathematical proof of its security. It also uses the LLL basis reduction... |
512 bits | hash |
Tiger | 192 bits | hash |
Whirlpool | 512 bits | hash |