About the MD5 Generator
MD5 turns any text or file into a 32-character fingerprint, such as 5d41402abc4b2a76b9719d911017c592 for the word "hello". It is old and no longer safe for security, but it is still everywhere: download checksums, file deduplication, cache keys, ETags, database fields and older APIs all use it.
The MD5 Generator hashes text as you type, every line of a list separately, or a file of any size. Files are read in 4 MB pieces, so even multi-gigabyte disk images can be hashed without loading them into memory at once. Paste a published checksum to compare, and you know at once whether your copy matches.
Output comes in lowercase hex, uppercase hex or Base64, the form used in Content-MD5 headers and cloud storage. Everything is calculated in your browser, so your text and files never leave your device.
How to use it
- Choose what to hashText hashes the whole box at once. Each line gives a separate MD5 for every line. File hashes the exact bytes of a file you drop or choose.
- Add your inputType or paste text, or drop a file on the drop zone. For large files, a percentage shows the progress.
- Pick the output formatChoose lowercase hex (the usual form), uppercase hex, or Base64.
- Compare with a checksumPaste the expected MD5 into the compare box. It works with a bare hash or a whole line from an md5sum file, in Text and File mode.
- Copy the resultCopy the hash, or in Each line mode copy or download the full list as md5-hashes.txt.
Key features
Text, lines or files
Hash a single text, a list of values line by line, or any file.
Files of any size
Files are processed in 4 MB pieces with a progress display, so there is no size limit.
UTF-8 text
Text is hashed as UTF-8, the same bytes that command line tools and most programming languages use.
md5sum-style lists
Each line mode outputs "hash text" lines, the same layout as the md5sum command.
Checksum compare
Paste a bare hash, an uppercase hash or a full md5sum line. Hex and Base64 both work.
Private by design
No upload. Text and files are hashed on your device.
Examples
Common MD5 values
hello 5d41402abc4b2a76b9719d911017c592
password 5f4dcc3b5aa765d61d8327deb882cf99
café 07117fe4a1ebd544965dc19573183da2
For "hello", the status line reads MD5 calculated · 5 B. "café" is 5 bytes too, because é takes two bytes in UTF-8.
One period makes all the difference
The quick brown fox jumps over the lazy dog
9e107d9d372bb6826bd81d3542a419d6
The quick brown fox jumps over the lazy dog.
e4d909c290d0fb1ca068ffaddf22cbd0
Adding a single period changes the hash completely. That is what makes hashes useful for spotting changes.
Hashing a list line by line
Switch to Each line and paste:
apple
banana
cherry
The status line says 3 lines hashed, and the output is:
1f3870be274f6c49b3e31a0c6728957f apple
72b302bf297a228a75730123efef7c41 banana
c7a4476fc64b75ead800da9ea2b7d072 cherry
A final line break at the end of the list does not add an extra line.
Verifying a download
Hash the file in File mode, then paste the checksum line from the download page:
5d41402abc4b2a76b9719d911017c592 hello.txt
If it matches, you see Match: the MD5 checksums are the same. The BSD form MD5 (hello.txt) = 5D41402A... in uppercase works too.
Base64 for headers
Switch the output to Base64 and the MD5 of "hello" becomes XUFAKrxLKna5cZ2REBfFkg==, the form used in Content-MD5 headers and by some cloud storage services.
Tips
- Use MD5 to check that a file copied or downloaded correctly, or to find duplicate files. For anything security-related, use SHA-256 instead.
- If your hash differs from one made with echo in a terminal, the line break is the likely cause: echo adds one, and the tool hashes exactly what you typed.
- Use Each line mode to hash a list of email addresses or IDs for a system that matches MD5 values, such as some advertising and analytics platforms.
- When a checksum does not match, download the file again first. An interrupted or corrupted download is the usual reason.
- Need several algorithms at once, or an HMAC? The SHA Generator calculates SHA-1, SHA-256, SHA-384 and SHA-512 side by side.
Common mistakes and limits
- Using MD5 for passwordsMD5 is extremely fast and widely precomputed, so MD5 password hashes are cracked in seconds. Use bcrypt or Argon2 for passwords.
- Trusting MD5 against tamperingDifferent files with the same MD5 can be created deliberately. MD5 catches accidental damage, but not an attacker who swaps the file.
- Expecting to reverse a hashMD5 cannot be decrypted. Sites that "reverse" MD5 just look the hash up in tables of common words and passwords.
- Hashing text with hidden differencesTrailing spaces, a final line break, Windows line endings or a different text encoding all change the hash. Check what exactly you are hashing.
- Hashing lists with blank linesIn Each line mode, every empty line in the middle of the list gets its own hash (d41d8cd98f00b204e9800998ecf8427e, the MD5 of nothing). Remove blank lines first if you do not want them.