File:CPT-Hashing-File-Transmission.svg · Wikimedia Commons · See Wikimedia Commons
Also known as MD5 Message-Digest Algorithm, Message Digest Algorithm 5
The MD5 message-digest algorithm is a widely used hash function producing a 128-bit hash value. MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function MD4, and was specified in 1992 as RFC 1321.
Key facts
- Cryptographic hash function.rounds
- 4
- Cryptographic hash function.name
- MD5
- Cryptographic hash function.caption
- 848ca0f914b8836f4e4aa8c9da171609
- Cryptographic hash function.block size
- 512 bit
- Cryptographic hash function.designers
- Ronald Rivest
- Cryptographic hash function.publish date
- April 1992
- Cryptographic hash function.series
- MD2, MD4, MD5, MD6
- Cryptographic hash function.digest size
- 128 bit
- Cryptographic hash function.structure
- Merkle–Damgård construction
- Cryptographic hash function.cryptanalysis
- A 2013 attack by Xie Tao, Fanbao Liu, and Dengguo Feng breaks MD5 collision resistance in 218 time. This attack runs in less than a second on a regular computer. MD5 is prone to length extension attacks.
via Wikipedia infobox
Wikidata facts
Show 2 more facts
- Stack Exchange tag
- stackoverflow.com/tags/md5
- inception
- 1991-00-00
via Wikidata · CC0
~20 min read
Article
14 sectionsContents
- History and cryptanalysis
- Security
- Overview of security issues
- Collision vulnerabilities
- Preimage vulnerability
- Applications
- Algorithm
- Pseudocode
- MD5 hashes
- Implementations
- See also
- References
- Further reading
- External links
The MD5 message-digest algorithm is a widely used hash function producing a 128-bit hash value. MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function MD4, and was specified in 1992 as RFC 1321.
MD5 can be used as a checksum to verify data integrity against unintentional corruption. Historically it was widely used as a cryptographic hash function; however it has been found to suffer from extensive vulnerabilities. It remains suitable for other non-cryptographic purposes, for example for determining the partition for a particular key in a partitioned database, and may be preferred due to lower computational requirements than more recent Secure Hash Algorithms.