MD5 (Message-Digest Algorithm 5) is a message digest algorithm (and cryptographic hash function) with a 128-bit hash value. MD5 is one of a series of message digest algorithms designed by professor Ronald Rivest of MIT. It is an improvement upon its predecessor, MD4, made in response to some analytic work indicating that MD4 was likely to be insecure. MD4 was subsequently shown to be cryptographically insecure. MD5 has been widely used, and was originally thought to be cryptographically secure. However, work in Europe in 1994 uncovered weaknesses which make further use of MD5 questionable. Specifically, it has been shown that special pairs of messages can be generated which have the same hash. Unlike MD4, it is still thought to be very difficult to produce a message with a given hash.
MD5 checksums are widely used in the free software world to provide assurance that a downloaded file is unaltered. By verifying a published MD5 sum's PGP signature, and then comparing a publicized MD5 sum with the checksum of a downloaded file, a user can be sure that the file is the same as that offered by the developers. This protects against trojan horses and computer viruses.