Link: http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html
MD5: Introduction
MD5 was developed by Professor Ronald L. Rivest of MIT. What it does, to quote the executive summary of rfc1321, is:
[The MD5 algorithm] 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 two messages having the same message digest, or to produce any message having a given prespecified target message digest. The MD5 algorithm is intended for digital signature applications, where a large file must be “compressed” in a secure manner before being encrypted with a private (secret) key under a public-key cryptosystem such as RSA.
In essence, MD5 is a way to verify data integrity, and is much more reliable than checksum and many other commonly used methods.
Is MD5 perfect? A cryptographic algorithm is rarely provably perfect. Cryptographers examine and test algorithms as carefully as possible, but few stand the test of time.
NEWS: as of 2004, MD5 has a known collision weakness. See the technical article about the collisions, read more meta-info about the collisions, and read an FAQ on the impact of the MD5 collisions. Synopsis: MD5 is not completely useless, but is now problematic for certain uses.