Free · No sign-up · Nothing uploaded

Hash & checksum generator

Compute MD5, SHA-1, SHA-256, SHA-384 and SHA-512 for any text or file — all at once, instantly, in your browser.

🔒 Hashing runs entirely on your device — your text and files are never uploaded.

What it's for

Verify downloads

Check a file's MD5/SHA-256 against the published checksum to confirm it's intact.

🧰

Developer utility

Quickly hash strings, tokens or payloads while building and debugging.

🔒

Private

Everything is computed locally — nothing is sent to a server.

What these algorithms are still safe for

MD5 and SHA-1 are both comprehensively broken for collision resistance, and it is worth being precise about what that does and does not mean. A collision attack means an attacker can construct two different inputs with the same digest. MD5 collisions have been trivial since 2004 and can be produced on a laptop in seconds. SHA-1 fell in 2017 with the SHAttered attack, and by 2020 a chosen-prefix collision — the far more dangerous variant, where the attacker controls meaningful content in both files — cost roughly 45,000 US dollars of rented GPU time. That figure only goes down.

What has not been broken for either is preimage resistance: given a digest, nobody can practically compute an input that produces it. This is why MD5 and SHA-1 remain perfectly reasonable as non-adversarial checksums — verifying a download did not corrupt in transit, deduplicating files, cache keys, ETags. The failure mode there is random corruption, not a motivated attacker, and both algorithms detect that flawlessly.

The line to hold is simple: the moment a hash is used to decide whether to trust something — a signature, a certificate, a software update, a "this file has not been tampered with" check — MD5 and SHA-1 are unusable and SHA-256 is the minimum. SHA-512 is not meaningfully more secure against current attacks but is often faster on 64-bit hardware, since it operates on 64-bit words.

Hashing is not encryption, and it is not password storage

A hash is one-way and keyless: there is nothing to decrypt, because the original input is not present in the digest. Any tool promising to "decrypt" an MD5 hash is running a lookup table of precomputed common inputs, not reversing the mathematics. This is also why a hash of a short, predictable value — a phone number, a postcode, an email address — provides almost no privacy. The input space is small enough to enumerate exhaustively.

The consequence people get wrong most often is password storage. A fast hash is precisely the wrong tool, because speed is the attacker's advantage: commodity GPUs compute billions of SHA-256 digests per second against a stolen database. Passwords need a deliberately slow, memory-hard key derivation function — Argon2id is the current recommendation, with bcrypt and scrypt both still acceptable — plus a unique random salt per user so that identical passwords do not produce identical digests and one cracked entry does not reveal others.

If you need to verify that a message came from who it claims to, a bare hash is also insufficient, since anyone can recompute it over modified content. That requires an HMAC, which mixes in a secret key. Generate that key with the password generator rather than inventing one.

Why the digests here are computed the way they are

SHA-256, SHA-384 and SHA-512 come from the browser's native crypto.subtle.digest, which is implemented in the browser's own compiled cryptography library rather than in JavaScript. It is fast and constant-time, and it is the reason this page can hash a sizeable file without freezing.

MD5 and SHA-1 are the exception. The Web Crypto specification deliberately omits MD5 entirely and exposes SHA-1 only for legacy interoperability, precisely to discourage new use, so those digests are computed in JavaScript instead. They are included here because verifying a checksum published by someone else is a real, legitimate need — you do not get to choose which algorithm an upstream project used.

Everything runs locally, which is not a marketing line but a requirement: pasting an API key, a private document or a password into a server-side hashing service hands the plaintext to that server, and the digest is the only thing you wanted it to see.

Hash generator FAQ

Which hashes are supported?

MD5, SHA-1, SHA-256, SHA-384 and SHA-512 — all computed at once for the same input.

Can I hash a file?

Yes — switch to the File tab and drop a file to get its checksum, great for verifying downloads. It's read locally and never uploaded.

Is my data private?

Completely. Hashing happens entirely in your browser, so your text and files never leave your device.

Can I recover the original text from a hash?

No. Hashing is one-way by design. Services that appear to reverse MD5 are matching your digest against a precomputed table of common inputs — they work for "password123" and fail for anything unpredictable.

Should I use this to hash passwords for my app?

No. Use Argon2id, bcrypt or scrypt with a unique per-user salt. General-purpose hashes like SHA-256 are far too fast, which lets an attacker who steals your database test billions of guesses per second.