MD5 Hash Generator

Max 256 KB · Hashes automatically as you type

Algorithms
MD5

Processed entirely in your browser — nothing is sent to a server.

MD5 (Message Digest Algorithm 5) was designed by Ronald Rivest in 1991 and published as RFC 1321 in 1992. It takes input of any length and produces a 128-bit digest, conventionally written as 32 hexadecimal characters. For over a decade it was the default choice for file checksums and even, in its early years, for storing password hashes — a use that would be considered a serious mistake today.

That changed in 2004, when Xiaoyun Wang and colleagues published a practical method for constructing MD5 collisions — two different inputs that hash to the same value — using ordinary computing hardware rather than a theoretical attack requiring implausible resources. By 2008, researchers had extended the technique to a “chosen-prefix” collision and used it to forge a rogue Certificate Authority certificate that browsers would have trusted. Today, generating an MD5 collision takes seconds on a laptop. Every major standards body has deprecated MD5 for any use where someone might deliberately try to forge a match.

What survives that history is MD5’s usefulness against accidental corruption. A bit flip from a failing disk, a truncated download, or a dropped network packet still changes the MD5 output almost certainly — nobody engineered that specific accident to preserve the hash. This is why plenty of older Linux distribution mirrors, legacy build tools, and archival systems still publish MD5 checksums alongside their files: not as a security guarantee, but as a fast, universally-supported “did this arrive intact” check. If you need to confirm a download matches what a vendor published, or that two files are byte-identical without diffing them directly, MD5 is still a reasonable, lightweight tool for that specific job — it just has no place anywhere an adversary benefits from a forged match: passwords, signatures, or tamper detection.

One practical wrinkle: browsers’ built-in Web Crypto API doesn’t implement MD5 at all (it was deliberately excluded as a legacy algorithm), so client-side JavaScript needs its own implementation — which is what powers this page. Server-side runtimes like Node.js and languages like Python, by contrast, still ship MD5 support directly for exactly this kind of legacy-compatibility use.

Computing an MD5 hash programmatically

Node.js (via the built-in crypto module — browsers can’t do this, since Web Crypto omits MD5):

import { createHash } from "node:crypto";

const hash = createHash("md5").update("Hello, World!", "utf8").digest("hex");
console.log(hash);
// "65a8e27d8879283831b664bd8b7f0ad4"

Python (via the standard library’s hashlib):

import hashlib

digest = hashlib.md5("Hello, World!".encode("utf-8")).hexdigest()
print(digest)
# "65a8e27d8879283831b664bd8b7f0ad4"

Frequently asked questions

Why does this generator still offer MD5 if it's broken?
Because "broken" here means broken for adversarial use, not for every use. MD5 is still the checksum format a lot of older software, mirrors, and file-transfer tools publish by default, so being able to compute and compare one is still a practical, everyday need — just not a security one.
What's the actual difference between MD5 being 'broken' and being useless?
A broken hash means someone with motive and modern hardware can deliberately construct two different files that produce the same MD5 — a forged match. It says nothing about accidental corruption: a random bit flip from a bad disk sector or a dropped network packet still changes the MD5 almost certainly, because nobody engineered that specific corruption to preserve it. MD5 is unreliable against an adversary and still reliable against chance.
Can I use MD5 to confirm a file downloaded correctly?
Yes — that's precisely the case it's still appropriate for. If a mirror publishes an MD5 alongside a download and your local computation doesn't match, something went wrong in transit (or the mirror is stale), and re-downloading is the fix. What MD5 can't tell you is whether the file was deliberately tampered with by someone who also recalculated a matching hash — for that, the mirror would need to publish over a channel you trust (HTTPS from the real vendor), not just the hash itself.
Why isn't MD5 available through the browser's native Web Crypto API?
The Web Crypto specification (SubtleCrypto) only implements SHA-1/256/384/512 — MD5 was deliberately left out as a legacy algorithm the spec's authors didn't want to encourage new code to reach for. This tool's MD5 output is computed by a small hand-written JavaScript implementation of RFC 1321 instead, entirely client-side.
How long is an MD5 hash?
128 bits, always written out as 32 hexadecimal characters (4 bits per hex digit), regardless of how long or short the input text is — the same fixed-length property every hash function in this generator shares, just at a shorter length than SHA-256's 64 characters or SHA-512's 128.

Related Hash Generator pages

Looking for a different pair or algorithm? Here are the other specific versions, plus the general tool for everything else: