Md5

In cryptography, MD5 (Message-Digest algorithm 5) is a widely used cryptographic hash function with a 128-bit hash value. Specified in RFC 1321, MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files. However, it has been shown that MD5 is not collision resistant;[3] as such, MD5 is not suitable for applications like SSL certificates or digital signatures that rely on this property. An MD5 hash is typically expressed as a 32-digit hexadecimal number.

The security of the MD5 hash function is severely compromised. A collision attack exists that can find collisions within seconds on a computer with a 2.6Ghz Pentium4 processor (complexity of 2^24.1).[17] Further, there is also a chosen-prefix collision attack that can produce a collision for two chosen arbitrarily different inputs within hours, using off-the-shelf computing hardware (complexity 2^39).

MD5 digests have been widely used in the software world to provide some assurance that a transferred file has arrived intact. For example, file servers often provide a pre-computed MD5 (known as Md5sum) checksum for the files, so that a user can compare the checksum of the downloaded file to it. Unix-based operating systems include MD5 sum utilities in their distribution packages, whereas Windows users use third-party applications.

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 (sixteen 32-bit little endian integers); 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, in bits.

The main MD5 algorithm operates on a 128-bit state, divided into four 32-bit words, denoted A, B, C and D. These are initialized to certain fixed constants. The main algorithm then operates on each 512-bit message block in turn, each block modifying the state. The processing of a message block consists of four similar stages, termed rounds; each round is composed of 16 similar operations based on a non-linear function F, modular addition, and left rotation.

#-Link-Snipped-#

Replies

  • Kaustubh Katdare
    Kaustubh Katdare
    What's the point in copy-pasting article excerpt from Wikipedia?

You are reading an archived discussion.

Related Posts

This should be my first thread in this forum(CE).:smile: I'm trying to build a gsm activated car security. Will someone tell me where to tap the signal that will activate...
Note: The below points about QTP 11.0 is copied from a presentation I have prepared gathering data from various sources. New Features in QTP •[FONT="] [/FONT]XPath and CSS based object...
What are all the practical applications of MATLAB software, other than simulating electrical, electronic, and computer languages? any example practically? And why it is considered the most important tool for...
today i wrote some code and complied it, till it was good. when i executed the code, server got crashed. error was illegeal bytecode. i want to know ,by how...
London/Hamburg, January 10, 2011. m8 Capital, the venture capital fund investing exclusively in mobile technology, announced today a US$ 4.2 million investment in German mobile technology company SCHAD. SCHAD’s technology...