MD5 hash

Compute a 32-character MD5 checksum of text or a file in this tab. Web Crypto omits MD5, so this page uses js-md5 locally. MD5 has been collision-broken since 2004: use it to match legacy checksums, never for signatures or passwords. A mismatch is usually a trailing newline or the wrong algorithm. Nothing is uploaded.

MD5128-bit · 32 hex

waiting for input

SHA-256256-bit · 64 hex

waiting for input

SHA-512512-bit · 128 hex

waiting for input

SHA-384384-bit · 96 hex

waiting for input

SHA-1160-bit · 40 hex

waiting for input

Waiting for input15 bytes (UTF-8)Nothing leaves this tab

Runs in this tab · nothing is uploaded · Verify in 10 seconds →

What this does

MD5 produces a fixed 128-bit digest, 16 bytes, 32 hex characters. Web Crypto deliberately omits it (the API ships only algorithms considered secure), so this page uses the js-md5 library, still entirely in your browser. MD5 has been broken for collision resistance since 2004: use it to match legacy checksums, never for security.

The break is not theoretical: crafting two different inputs with the same MD5 digest takes under a second on ordinary hardware, and chosen-prefix collisions (two meaningful colliding documents) are within hobbyist budgets. What still holds is second-preimage resistance: nobody can produce a file matching your existing file's MD5, which is exactly why MD5 remains serviceable for detecting accidental corruption and nothing more. The empty string's digest, d41d8cd9…ecf8427e, is worth recognizing in logs: it means something hashed nothing.

When it goes wrong

If an MD5 does not match the published value, check the byte-level suspects first (trailing newline, CRLF, BOM), and count characters: a 40-hex value against your 32-hex output means the source published SHA-1, not MD5. If you are choosing an algorithm rather than matching one, stop here and use SHA-256, same tool, the row directly below MD5.

When to use this

Only where a legacy system demands MD5: old checksum files, an ETag scheme you cannot change, cache keys in an existing format.

This page is a focused view of theHash Generator: SHA-256, SHA-512, SHA-1, MD5, which has the full set of options.

Frequently asked questions

Is MD5 safe to use at all?

For non-adversarial jobs, yes, detecting accidental corruption or keying a cache is fine. It is unsafe wherever an attacker benefits from crafting two inputs with the same hash: signatures, certificates, password storage.

Why doesn't the browser support MD5 natively?

The Web Crypto API only ships algorithms considered secure; MD5 and SHA-1 checksum use cases are left to libraries. That is why this page uses js-md5 while SHA-256 uses crypto.subtle.

Can I get the original text back from an MD5 hash?

Not by reversing it, but common short inputs are trivially found in precomputed lookup tables, another reason never to “hash” secrets with bare MD5.