Home    Download    Change Log    Manual    Hash Functions    Wiki    License  ru | en 

Hash Functions


A Hash Function is an algorithm that converts a long string (or message) of any length into a fixed length string known as Message Digest, checksum or digital fingerprint.

CRC32 (Cyclic redundancy check) is simple hash function designed to protect data from accidental changes in computer devices such as network cards and hard disk drives. It is specified in the CRC32-IEEE 802.3 standard. The algorithm while being totaly insecure is very fast and is still widely used due to its simplicity and speed. The 32-bit long hash value is a hexadecimal number of 8 characters.

MD4 is a Message Digest Algorithm developed by Ronald L. Rivest from RSA Data Security, Inc. Currently it's considered insecure, but it's very fast on 32-bit mashines and it's used for calculating EDonkey 2000 hashes in the EDonkey p2p network. MD4 algorithm is described in RFC 1320. Hash is a hexadecimal string of 32 characters.

MD5 is another Message Digest Algorith developed by Ronald L. Rivest from RSA Data Security, Inc. It's an improved version of MD4. The algorithm is described in RFC 1321. It was an Internet Standart for years, but now it's considered broken. Hash is a hexadecimal string of 32 characters.

SHA1 (Secure Hash Algorithm 1) is a Hash Function designed by NSA in 1993. It's described in RFC 3174. It's approximately two-three times slower then MD5 algorithm. Hash is a hexadecimal string of 40 characters.

Tiger is a modern Hash Function developed by Ross Anderson and Eli Biham. It's designed to be fast on 64-bit processors. See Description. Hash length is 48 hexadecimal digits.

TTH (Tiger Tree Hash) is used in several P2P networks such as Direct Connect and Gnutella. TTH is a calculated in a tree-form algorithm based on Tiger hash, see description. The hash is a base32 encoded string consisting of 39 alphanumeric symbols.

BTIH (BitTorrent InfoHash) used in BitTorrent network. This hash sum depends not only on file data, but also on file name and even the program calculating the hash. RHash uses the same method as uTorrent. The hash is a string of 40 hexadecimal digits.

EDonkey 2000 is one of the fastest hash functions. It is based on deprecated MD4 algorithm and is used in the EDonkey p2p network. See EDonkey network article for details. Hash is a hexadecimal string of 32 characters.

AICH (Advanced Intelligent Corruption Handler) is a hash used in EDonkey p2p-network and usually included in EDonkey-links. It is calculated in a bynary-tree form using SHA1 algorithm, see description. The hash is a base32 encoded string of 32 alphanumeric symbols.

WHIRLPOOL is a hash function recommended by the NESSIE project and adopted by ISO/IEC 10118-3:2004 international standard. Hash is represented as a 128-digit hexadecimal number.

GOST is a hash function defined in Russian national standard GOST R 34.11-94. It has two widely used versions with "test" parameters and CryptoPro ones. It's relatively slow, but it is used for digital signature in Russian State banks and enterprises. Hash is a hexadecimal string of length 64.

HAS-160 is Korean hash sum, designed for Korean Certificate-based Digital Signature Algorithm (KCDSA). Hash is a hexadecimal string of length 40.

RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest) is a 160-bit hash function. Specification: The RIPEMD-160 page. Hash is a hexadecimal string of length 40.

EDON-R is a family of hash functions with variable output length. RHash suppots 256-bit and 512-bit variants. 512-bit EDON-R is one of fastest hash algorithms on 64-bit processors. The function is defined in the article: D. Gligoroski, S. Markovski, L. Kocarev Edon-R, An Infinite Family of Cryptographic Hash Functions (2006). 256-bit and 512-bit hashes are hexadecimal strings of length 64 and 128, respectively.

Snefru hash function, invented by Ralph Merkle in 1990, is named after Egyptian Pharaoh Sneferu. It is currently considered broken and is very slow in comparision to modern hashes. The hash of 128-bit and 256-bit Snefru is represented as a hexadecimal string of length 32 and 64, respectively.

References