MD5 is a popular Hash Function used by many people around the world. Developed by Professor Ronald L. Rivest of MIT
It has two purposes:
- Verify the integrity of a file after a specified period of time
- Generate Hash values for a certain piece of data ( Ex: file) and store them, for later cross checking if the file has been modified or not (this is in essence the 1st point stated above)
For example, on a system that has a file called "SAMPLE.TXT" the MD5 hash would look like this:
MD5 takes as input a message of arbitrary length and produces as output a 128- bit "fingerprint" or "message digest" of the input. It is conjectured that it is computationally infeasible to produce any message having a given prespecified target message digest. The MD5 algorithm was intended for digital signature applications, where a large file must be "compressed" in a secure manner before being signed with a private (secret) key under a public-key cryptosystem such as RSA. However, practical attacks on the collision resistance of MD5 exist, and it should therefore not be used with digital signatures or any other application requiring collision resistance.