Hash functions are mathematical functions that take an arbitrarily sized input string, and generate a fixed-size output called a hash value or a message digest. A good hash function
should calculate hashes easily; it will be very difficult to calculate the plaintexts of a given
hash, and it does not generate the same hash for two different inputs, except in rare cases.
![](https://static.packt-cdn.com/products/9781788624480/graphics/assets/1818e384-c815-4f1a-bd0d-68f013294b42.png)
There are many well-known hash functions used nowadays; they are as follows:
- Hashed message authentication code
- Message Digest (MD2)
- Message Digest (MD4)
- Message Digest (MD5), if you want to encrypt or decrypt a plaintext you can use http://md5decrypt.net/en/ shown here:
![](https://static.packt-cdn.com/products/9781788624480/graphics/assets/ee476298-c816-409a-b77b-6e53a7a69bc2.png)
- Secure Hash Algorithm (SHA)
- Whirlpool
- HAVAL
- RIPEMD