What MD5 is, and why it is still around
MD5 was designed by Ronald Rivest in 1991 and described in RFC 1321. It turns any input into a 128-bit value, which is usually written as 32 hexadecimal characters. It is fast and available everywhere, and that is why it survives in file listings, package mirrors and old systems.
Researchers found ways to make two different inputs with the same MD5 in 2004, and in 2008 a team used the weakness to create a fake certificate authority certificate. Since then MD5 has been unsuitable for anything where someone might try to fool you on purpose.
Where MD5 is still fine, and where it is not
- Fine: noticing that a file was damaged or cut short in transit, because accidental damage does not produce collisions.
- Fine: cache keys, change detection and finding duplicates inside data you control.
- Not fine: digital signatures, certificates, or proving a file was not replaced, because an attacker can craft a file with a chosen MD5.
- Not fine: password storage. MD5 is far too fast, and a leaked list of MD5 passwords can be cracked at billions of guesses a second.
If you have a choice, publish and check SHA-256 as well. This page calculates both at once.
Getting an MD5 checksum on your own computer
To cross-check a result, these commands print the same value: md5sum file on Linux, md5 file on macOS, and Get-FileHash file -Algorithm MD5 in Windows PowerShell (or certutil -hashfile file MD5 in a Command Prompt).
Two values worth knowing when you test a tool: the MD5 of empty input is d41d8cd98f00b204e9800998ecf8427e, and the MD5 of the three letters abc is 900150983cd24fb0d6963f7d28e17f72. If you leave the text box empty here, you will see the first one.