The MD5 Hash
MD5 is a hashing algorihtm capable of producing a 128-bit (16 byte) hash from an arbitrary input of bytes. It has been found crypographically broken and unsuitable for further use, due to the ease of finding hash collisions. Collisions are two different input buffers that produce the same output. Attackers can exploit this to validate malicious data (called a collision attack), and tamper with machines.
The following bytes, for example, produce the same MD5 hash, even though they have slightly different values.
Uses for MD5
Hashing algorithms like MD5 are useful because they always produce the same output for the same input, but make it nearly impossible to reverse-engineer a given hash to its original input. They can be used to store passwords, banking information, and other sensitive data so that in the event of a data leak, users' information would remain safe.
Despite its proven insecurity, the hash is still widely used. In older Unix systems, for example, passwords are stored (hashed) in the publicly available
/etc/passwd file using the MD5 algorithm. The SHA-2 family of algorithms are much more secure, and some of them—SHA-256, SHA-384, and SHA-512—are on this website for you to try out.