I know the list of all hash functions is too long. I just want to know the most popular ones which are used in day to day IT practical tasks. I know MD5, SHA1, SHA2 (256 and 512) are really popular. Is there any other hash function I can add to these 5 algorithms?
I want to develop a hash Tool and I just want to include those algorithms that developers really need.
- MD5, SHA-1 - Commonly used, used to be secure, but no longer collision resistant
- SHA-2 - Commonly used, secure. It's a family of functions with different output size.
- SHA-3 - Not yet specified, but will probably become popular after that. Wait for the spec. Will be a family of functions.
- CRC32 - Not secure, but really common as checksum
- MD4, RIPEMD160 - Haven't seen those for hashing files, but they're still around in some other contexts. MD4 is broken, some older members of the RIPEMD family are broken, but RIPEMD160 is still secure. Only place I've seen whirlpool is TrueCrypt's KDF.
- TTH / TigerTreeHash - Used in some filesharing contexts, still secure but security margin grows thin
- ED2K - Used in some filesharing contexts, MD4 based, broken collision resistance
- Skein, Blake2 - Skein is a SHA-3 finalist, Blake2 is derived from one. Relatively fast in software and occasionally used but not really common. As a contributor to Blake2 I hope it gets more popular :)
Beyond the hashes you named CRC32 is really common, and TTH/ED2K are used in a filesharing context but rarely elsewhere. Haven't seen much of the other hashes in a file hashing context.
Most widely used (and defined in standards for SSL/TLS, OpenPGP, SSH) are:
- CRC32 - simple checksum, used in ZIP, OpenPGP and number of other
standards.
- MD2, MD5 - too old and weak MD5 - old and considered weak.
- SHA1 - standard de facto, used almost everywhere (DSA algorithm is
used only with SHA1, that's also wide usage area).
- SHA224/256/384/512 - should supersede SHA1, and is used with DSA keys
larger than 1024 bits, and ECDSA signatures
- RipeMD160 - used in OpenPGP, and some X.509 certificates.
There are also other hash algorithms (you can get the full list on wikipedia), but most likely you'll never meet them in real life.