Hashing involves taking a variable-length block of data as an input and producing a fixed-length output. The process produces a new value provided input to the hash function. The hash function involves a mathematical algorithm that manipulates the input text or key producing a hash value. Hashing is normally used to validate the integrity of data or the correctness of a password. Some hash functions had been discovered to be vulnerable against collision attacks, so staying up to date with the state of the art hash function is a must for security professionals.