Free MD5 generator. Hash text or a file in your browser and verify a download against its published checksum. Nothing is uploaded.
This MD5 generator turns any text or any file into its 128–bit MD5 digest — the familiar 32–character hexadecimal string — without sending a single byte anywhere. Type into the box above and the hash updates as you type; drop in a file and it is read in slices and hashed locally, so a multi–gigabyte ISO is handled the same way as a one–line string. There is no upload, no account, no rate limit and no queue.
That last point is worth stating plainly, because many online MD5 tools work by posting your input to a server. This one cannot: the hashing happens in JavaScript inside your own browser tab, so you can paste a configuration snippet or an internal document into it without that content leaving the machine.
md5sum, certutil and almost every vendor checksum page uses. Uppercase hex is what Windows’ certutil prints and what some enterprise tools expect. Base64 is the compact 22–character form used in HTTP Content-MD5 headers and in a few package manifests — it encodes the identical 16 bytes.Generating a hash is only half the job. The reason vendors publish an MD5 next to a download link is so you can confirm the file arrived intact — that a truncated transfer, a corrupted mirror or a bad disk did not quietly change it. Paste the published value into the verify field above and the tool compares it against the digest it just computed.
The comparison is deliberately forgiving about formatting, because published checksums arrive in several shapes:
9e107d9d372bb6826bd81d3542a419d6.md5sum line — 9e107d9d372bb6826bd81d3542a419d6 *installer.iso. Everything after the hash, including the * binary–mode marker, is ignored.== padding, as seen in Content-MD5 headers, is decoded and compared against the same 16 bytes.A no–match verdict means the bytes differ, full stop. Before assuming the download is bad, check the two boring causes first: that you copied the entire hash rather than a truncated version of it, and that the checksum you are comparing against belongs to the exact build you downloaded rather than a neighbouring version on the same page.
If you would rather do this in a terminal, or need it inside a script, these produce exactly the same digest this page does:
| Platform | Command |
|---|---|
| Linux | md5sum file.iso |
| macOS | md5 file.iso or md5 -q file.iso for the bare hash |
| Windows (cmd) | certutil -hashfile file.iso MD5 |
| Windows (PowerShell) | Get-FileHash -Algorithm MD5 file.iso |
| Any platform, text | printf '%s' "your text" | md5sum |
| Verify a checksum file | md5sum -c SHASUMS.md5 |
Note printf '%s' rather than echo in the text row. That distinction causes more confused checksum comparisons than anything else, and it is covered below.
When a hand–computed MD5 disagrees with one from another tool, the input differed — MD5 itself is completely deterministic. In practice it is nearly always one of these three:
echo "hello" | md5sum appends a line feed and returns b1946ac92492d2347c6235b4d2611184. The string hello on its own is 5d41402abc4b2a76b9719d911017c592. Use echo -n or printf '%s' to suppress the newline. The text box on this page hashes exactly what you typed, with no newline added.core.autocrlf enabled.MD5 (Message–Digest Algorithm 5, published by Ronald Rivest in 1992 and specified in RFC 1321) is a cryptographic hash function that reduces an input of any length to a fixed 128 bits. Those 16 bytes are conventionally written as 32 hexadecimal characters. The output length never changes: an empty string and a 50 GB disk image both produce exactly 32 hex characters.
Because each 512–bit block is folded into a running state, MD5 can be fed incrementally — which is how this page hashes a large file slice by slice without holding it all in memory.
Two properties matter in practice. It is deterministic: the same bytes always give the same digest, on any machine, in any language, forever. And it exhibits the avalanche effect: a one–character change rewrites the entire output. Compare these:
| Input | MD5 |
|---|---|
(empty string) | d41d8cd98f00b204e9800998ecf8427e |
a | 0cc175b9c0f1b6a831c399e269772661 |
abc | 900150983cd24fb0d6963f7d28e17f72 |
The quick brown fox jumps over the lazy dog | 9e107d9d372bb6826bd81d3542a419d6 |
The quick brown fox jumps over the lazy dog. | e4d909c290d0fb1ca068ffaddf22cbd0 |
Adding a single full stop changes every one of the 32 characters. That is what makes MD5 useful for spotting corruption: there is no such thing as a “nearly matching” hash, and a single flipped bit anywhere in a download produces a completely different digest.
The empty–string digest d41d8cd98f00b204e9800998ecf8427e is worth recognising on sight. If a tool reports it for a file you expected to have content, the file is zero bytes — the download failed rather than the checksum being wrong.
MD5 is cryptographically broken, and any page that tells you otherwise is wrong. Wang and Yu demonstrated practical collisions in 2004; by 2008 researchers used a chosen–prefix collision to forge a rogue CA certificate, and today a chosen–prefix collision costs a matter of GPU–hours. CMU’s CERT has described MD5 as “cryptographically broken and unsuitable for further use” since 2008, and NIST disallows it for digital signatures.
Concretely, do not use MD5 for:
Equally, MD5 is entirely legitimate and still widely used for:
The honest rule: MD5 answers “did these bytes change by accident?” and no longer answers “did someone change these bytes on purpose?” If an attacker gains anything by making two inputs hash the same, reach for SHA–256.
| MD5 | SHA-256 | |
|---|---|---|
| Digest size | 128 bits / 32 hex chars | 256 bits / 64 hex chars |
| Published | 1992 (RFC 1321) | 2001 (FIPS 180-4) |
| Collision resistance | Broken — practical since 2004 | No practical collision known |
| Speed | Faster, roughly 2–3× on typical hardware | Slower, but fast enough that it is rarely the bottleneck |
| Use for security | No | Yes |
| Use for corruption checks | Acceptable | Preferred where offered |
If a vendor publishes both, verify the SHA–256. MD5 is worth computing when it is the only checksum on offer, when you are matching against a legacy manifest, or when you are looking a sample up in a database that is keyed by MD5. For the longer comparison including SHA–512, see understanding the differences between MD5, SHA-256 and SHA-512; for the decision framework on legacy systems, see when MD5 is still acceptable.
No. MD5 is a one–way function, not encryption — it destroys information, mapping inputs of unlimited length onto 128 bits, so there is nothing to decrypt. What sites advertising “MD5 decrypt” actually do is look the hash up in a large table of previously computed digests of common strings. That works for weak passwords and dictionary words and fails completely for anything else.
Yes, and that is precisely the problem. By the pigeonhole principle collisions must exist for any fixed–length hash; for MD5 they can now also be constructed on demand, cheaply. Random collisions between unrelated real–world files remain vanishingly unlikely, which is why MD5 still works against accidental corruption.
They are the same value. Lowercase is the de–facto standard and what md5sum emits; Windows’ certutil prints uppercase. Comparisons should always be case–insensitive, and the verify box above treats them as equal.
Not one imposed by this page. The file is streamed through the hash in 4 MB slices, so memory use stays flat regardless of size; the practical ceiling is how long you are willing to wait and what your browser allows. Very large files hash faster from a local disk than from a network share.
No. MD5 is a one-way function, not encryption. It maps inputs of unlimited length onto 128 bits, so the original data is not recoverable from the digest. Sites offering "MD5 decrypt" are looking the hash up in a table of previously computed digests of common strings, which works only for weak passwords and dictionary words.
Almost always a trailing newline or a line-ending difference. echo "hello" | md5sum hashes hello\n and gives b1946ac92492d2347c6235b4d2611184, while the string hello alone gives 5d41402abc4b2a76b9719d911017c592. For files, a CRLF copy and an LF copy of the same text are different bytes and hash differently. When checking a download, always hash the file itself rather than pasting its contents as text.
It is broken for security purposes and fine for accident detection. Practical collisions have existed since 2004, so MD5 must not be used for signatures, certificates or password storage. It remains reasonable for verifying that a download or backup was not corrupted in transit, for deduplication, for cache keys, and for looking malware samples up in feeds that are keyed by MD5.
No. The digest is computed in JavaScript inside your browser and the file is read in 4 MB slices from local disk. Nothing is transmitted, logged or stored, and once the page has loaded no network access is needed.
None imposed by the tool. Because the file is streamed through the hash in slices rather than loaded into memory, memory use stays flat regardless of size. The practical limit is how long you are willing to wait.
They are the same value. Lowercase is the convention and is what md5sum emits; Windows certutil prints uppercase. The verify box on this page compares case-insensitively.
It is the MD5 of an empty input. If a tool reports it for a file you expected to have content, the file is zero bytes - the download or copy failed, rather than the checksum being wrong.
SHA-256 for anything security-related: it produces 256 bits instead of 128 and has no known practical collision. Use MD5 when it is the only checksum a vendor publishes, when matching a legacy manifest, or when querying a database keyed by MD5. If a vendor publishes both, verify the SHA-256.
Generate MD5, SHA-1, SHA-256, and SHA-512 hashes from text or files. HMAC support, multiple output formats, 100% client-side.
Drag in a file to hash it locally (SHA-256/SHA-1, nothing uploaded), or paste MD5/SHA-1/SHA-256 hashes — single or in bulk — and check them against known malware with VirusTotal & MalwareBazaar deep-links.
Identify the algorithm behind a hash and get the matching hashcat mode and John the Ripper format. Recognises MD5, the SHA family, bcrypt, NTLM, NetNTLMv2 and Unix crypt formats. 100% client-side.
Encode and decode Base64 strings for data transport, email attachments, and web development