Introduction A hash algorithm is described as a technique that displays all the possible outcomes of an algorithm analysis in a given sequence. Another name for this algorithm is a hash function. In working out solutions for the hash functions, arbitrary strings are used. An output string known as the hash value is easy to compute from this scenario. In other terms, the hash value is a fingerprint for the messages in use for the algorithm. In each given hash function, there exists 2 n different hash values which gives a probability of 2 – n to any given hash value. This explanation justifies why hash is a fingerprint to the message sent in the algorithm (Partow, 2011). There are three different attacks on hash functions, which include: The collision attack The main objective of this attack is to target two messages that hash to the same value in the algorithm. The pre-image attack This deals with finding a particular message that hashes to a given value in the algorithm. The 2 nd preimage attack This type of attack to hash functions deals with a particular message in order to find a different message, which hashes to the same value (Partow, 2011). Origin The use of hash algorithms commonly known as hash functions first came into light in the context of digital authentication in the use of password as a protection tool. These hash algorithm functions commonly known as one-way functions meaning that they were supposed to be pre-image resistant. Credit to these developments goes to Whitefield Diffie and Martin Hellman for being the first to define these one-way functions. They also indicated how to use a cryptosystem to create a secure hash function. In the year 1980, Davies Meyer and the Matyas-Meyer-Oseas developed the first concrete scheme but still had to incorporate the use of DES. This is simply because the encryption algorithm at the time did not provide adequate security. In the year 1988, a construction based on DES called the MDC-2 was developed. Due to this invent, a first dedicated hash function was developed by Ronald Rivest in the same year. The MD5 was the most widespread used hash function. In the year, 1993 saw the approval of the SHA hash function by the National Institute of Standards and Technology (Merkle, 1990). Detailed description For a message to be processed using a hash function it is usually padded before it can go through any process. The padding helps in splitting the message into blocks of equal size. The most common construction method that hash functions use is the Merkle-Damgard construction. The use of MD strengthening in the Merkle-Damgard construction makes it possible to prove that if the compression function is collision resistant then it is the same to the hash algorithm function. Choosing the type of function to use in a hashing algorithm depends solely on the type of data and their probability distribution in the application in question. Several useful types of hashing algorithms functions that are important in the process are in existence. Hash functions or algorithms are pseudo random number generators. The analysis of the different hash algorithms is by using a probability distribution called Poisson distribution. The collision between the hash values in each of the elements in the groups is avoided by use of a