Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Type or paste text and get its MD5 as you go. MD5 is a broken hash function and this page will keep saying so, because most of the reasons people reach for it are reasons to reach for something else — but the two or three legitimate uses are real, and they are what this is for.
Where it runs
Nothing is uploaded, because there is no file — it is worked out in this page.
No queue, no account
It answers as fast as your machine can, and it never asks who you are.
As often as you like
Nothing is counted and nothing is capped — answering again costs us nothing.
MD5 is not weak, it is broken: two different inputs producing the same digest can be constructed deliberately, in seconds, on an ordinary laptop. The first collision was published in 2004 and the technique has only got cheaper. There is no configuration, no salt and no length that repairs this.
What it does not mean is that MD5 has become unpredictable or that existing digests have stopped matching. A collision is something an attacker constructs; it is not something that happens by accident. That distinction is the whole of the remaining use case — MD5 is finished wherever somebody might be trying to fool you, and unaffected where nobody is.
Detecting accidental corruption. A file that was truncated in transit or flipped a bit on a bad disk will not produce the same MD5, because nothing was trying to make it. Deduplication for the same reason: two identical files have the same digest, and the odds of two unrelated real files colliding by chance remain astronomically small.
Reproducing something that already exists is the other one, and it is why most people are here. A cache key, an ETag, a Gravatar URL, a column in a database somebody chose fifteen years ago — the algorithm is not a choice in those cases, it is a fact about a system you have to interoperate with.
Passwords. Storing a password as an MD5 — with or without a salt — is negligent rather than merely dated, because MD5 is fast, and fast is exactly wrong for a password hash. Consumer hardware tries billions of MD5 candidates per second; the whole point of bcrypt, scrypt and Argon2 is that they cannot be hurried.
Anything you are trusting. A signature, a certificate, a software download whose publisher wants you to verify it, a token you check for tampering. In every one of those there is an adversary who benefits from a collision, and producing one is not hard. Use SHA-256, which is one page away.
MD5 takes bytes, and text is not bytes until an encoding is chosen. This page uses UTF-8, which is what files, databases and request bodies overwhelmingly hold. A system that stored the same text as Latin-1 or UTF-16 will produce a different digest for what looks like the same string, and neither side is wrong.
That is the usual reason two MD5s of "the same" text disagree. Before assuming an implementation is broken, check the encoding, then check for a trailing newline — the second most common cause, since a file usually ends with one and a text box does not.
A digest is a number; upper and lower case are two ways of writing it and every parser accepts both. Lower case is the Unix convention and what `md5sum` prints. Upper case turns up in Windows tooling and in a lot of older documentation.
The one place it stops being cosmetic is a comparison done as strings. Two digests of the same value, one in each case, are visibly identical and fail an equality check — which survives review precisely because the two values look the same on screen. Normalise before comparing, or compare case-insensitively.
Not by reversing the arithmetic, no. But for short or common inputs it does not need to be: precomputed tables cover every common password and every short string, so looking one up is instant. Treat an MD5 of anything guessable as public.
Only against accidents. It will catch a truncated file or a flipped bit reliably. It will not catch a file somebody modified deliberately, because they can construct a modification with the same digest. If the publisher offers SHA-256 alongside it, use that one.
Almost always the encoding or a trailing newline. This hashes the UTF-8 bytes; a system storing the text as Latin-1 or UTF-16 produces a different digest for what looks like the same string. And a file usually ends with a newline while a text box does not, which changes everything.
No. A salt stops precomputed tables, which is one problem out of two — the other is that MD5 is fast, and consumer hardware tries billions of candidates per second against a known salt. Password hashing needs an algorithm designed to be slow: bcrypt, scrypt or Argon2.
No. The digest is computed in this page, by an implementation of RFC 1321 running in your tab, and the network panel will confirm nothing leaves. The things people hash are routinely values they should not be pasting into somebody else server.