MD5 Checker / Generator

Message-Digest algorithm 5 (MD5)

In cryptography , MD5 is a widely-used cryptographic hash function with a 128-bit hash value. As an Internet standard ( RFC 1321 ), MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files. MD5 was designed by Professor Ronald L. Rivest in 1991 to replace an earlier hash function, MD4.

MD5 digests are widely used in the software world to provide some assurance that a downloaded file has not been altered, whether maliciously or accidentally. A user can compare a published MD5 sum with the checksum of a downloaded file. Assuming the published checksum is authentic, a user can be confident that their copy of a file is the same as that released by the developers, protecting against Trojan horses and computer viruses being added to the software surreptitiously. However, it is often the case that the checksum cannot be trusted (for example, it was obtained over the same channel as the downloaded file), in which case MD5 can only provide error-checking functionality: it will recognize a corrupt or incomplete download.

The MD5 Principle
The MD5 Principle

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 pre-specified 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.

Algorithm

MD5 processes a variable length message into a fixed-length output of 128 bits. The input message is broken up into chunks of 512-bit blocks; the message is padded so that its length is divisible by 512. The padding works as follows: first a single bit, 1, is appended to the end of the message. This is followed by as many zeros as are required to bring the length of the message up to 64 bits fewer than a multiple of 512. The remaining bits are filled up with a 64-bit integer representing the length of the original message. The message is always padded with at least a single 1-bit, such that if the message length is a multiple of 512 minus the 64 bits for the length representation (that is, length mod(512) = 448), a new block of 512 bits is added with a 1-bit followed by 447 0-bits followed by the 64 length.

copyright ©1999 - 2008 Cube-Tec International GmbH. All rights reserved.