MD5 stands for message-digest algorithm. It is one of the widely used hash functions which will generate a 128-hash value in hexadecimal format. The goal here is that a hash digests an original input value and generate a new output value that is significantly different from the original. It was designed by Ronald Rivest in 1991 as a replacement for older hash function MD4. It is found to have a lot of extensive vulnerabilities and only used for non-cryptographic purpose such as checksum to verify data integrity and determining the partition for a particular key in a partitioned database. One of the vulnerabilities is that it is prone to length extension attacks.