Hash Generator
Paste text or drop a file to get its MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes instantly. Verify a checksum by pasting the expected value — all in your browser.
—
—
—
—
—
Enter text or choose a file — all five hashes are computed instantly in your browser.
What a hash is actually doing
Every time you hash something with this tool, you run it through a one-way mathematical function that turns any input — a single character, a whole novel, a 4 GB video file — into an output of a fixed size. Change a single bit of the input and the output changes completely; feed the same input twice and you get the identical output every time. That combination — fixed size, deterministic, unpredictable on change — is what makes hashes useful for two very different jobs: proving a file wasn't corrupted or tampered with (integrity checking and checksums), and, in a far more hardened form, protecting stored passwords. This generator is built for the first job, not the second — more on why below.
Using this generator
- Text tab — type or paste anything (a config string, a line from a log file, a short message) and all five digests update as you type.
- File tab — drop a downloaded file (installer, ISO, archive). The browser reads it with
FileReaderand hashes the raw bytes; nothing is uploaded anywhere. - Output case — toggle lowercase/UPPERCASE hex. Some vendors publish checksums in uppercase, some in lowercase; the digest itself never changes, only how it's printed.
- Verify box — paste the checksum a project published (README, release notes, download page). The matching card lights up green. No match means the file is still downloading, corrupted, or was altered in transit.
How the five algorithms differ
MD5 (1992) produces a 128-bit digest (32 hex characters) over 64 internal rounds; SHA-1 (1995) produces 160 bits (40 hex characters) over 80 rounds. Both compress the input through a Merkle–Damgård construction: the message is padded, split into fixed-size blocks, and each block updates a running internal state. SHA-256, SHA-384 and SHA-512 belong to the newer SHA-2 family — SHA-256 outputs 256 bits (64 hex characters), while SHA-384 and SHA-512 share a larger 512-bit internal state built around 64-bit words, one truncated to 384 bits (96 hex characters) and one left at the full 512 bits (128 hex characters). A longer digest and more mixing rounds mean a dramatically larger search space for anyone trying to engineer two inputs that hash the same.
"hello" →
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"Hello" →
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969"hello " →
5e3235a8346e5a4585f8c58562f5052b8fe26a3bb122e1e96c76784964dfc461Capitalizing one letter, or adding a single trailing space, produces a completely unrelated digest — there is no partial match and no "close enough" in hashing.
MD5
6bd64e35c120a07f269bbdc1360677eeSHA-1
ef5a4c13039259f6a56d24b5d870df2b4247732bSHA-256
22fbef37b03ffdfc6ad6bcbe4905059ee545de8c17664773783eef6c2f34391bSHA-384
195357237749786e7ae156ded6e303b7c3205f1aec6736ba0b0d6e6ff0c9e4c4ec25789d8e01f0401b3e7a52ae863f61SHA-512
ec383e5badb9f70c5da2deac794cbe34fd9797d434c46d44cdbbf4e41d793f5263ab8fe435b0ced89def56914531484e0a8718884b4f88fc82ca410f28e42e46The digest gets longer as you move down the list, but the input never changes — only the mixing function and internal state size differ.
At a glance
| Algorithm | Digest size | Hex length | Year | Collisions found | Good for |
|---|---|---|---|---|---|
| MD5 | 128 bits | 32 chars | 1992 | Yes, practical (2004) | Non-security checksums only |
| SHA-1 | 160 bits | 40 chars | 1995 | Yes, practical (2017, "SHAttered") | Legacy checksums only |
| SHA-256 | 256 bits | 64 chars | 2001 | None known | Signatures, certificates, general security |
| SHA-384 | 384 bits | 96 chars | 2001 | None known | High-assurance integrity, TLS |
| SHA-512 | 512 bits | 128 chars | 2001 | None known | Same as SHA-256, faster on 64-bit CPUs |
Collisions, and why MD5 / SHA-1 are considered broken
A collision is two different inputs that produce the same digest. Researchers demonstrated a practical MD5 collision in 2004 and a practical SHA-1 collision (the "SHAttered" attack) in 2017 — both were engineered deliberately, not found by accident, and that's exactly the risk: an attacker can craft a malicious file that hashes identically to a legitimate one. That's why MD5 and SHA-1 must never back a digital signature, a TLS certificate, or a software-update mechanism, even though they remain perfectly fine for catching accidental corruption — a truncated download, a bit-flipped copy, a partial upload.
Hashing is not password storage
A raw hash from this tool, using any of the five algorithms shown, is the wrong way to store passwords. SHA-256 is fast by design — which is exactly the problem: a modern GPU can attempt billions of SHA-256 guesses per second against a leaked password list. Real password storage needs a deliberately slow, memory-hard function such as bcrypt, scrypt, or Argon2, combined with a per-user random salt, so that two users who happen to share a password don't get the same stored value and brute-forcing a single guess stays expensive. If a login system stores plain MD5(password), treat it as insecure.
Common mistakes
- Comparing a hash generated from pasted text against a checksum meant for a file's exact bytes — an extra trailing newline from copy-pasting changes the digest entirely.
- Treating uppercase and lowercase hex as "different" hashes — they're the same digest, just printed differently; the case toggle here only changes formatting.
- Hashing a password and storing the result as if it were secure — use a dedicated password hasher (bcrypt/Argon2), not this generator, for anything that authenticates a user.
- Trusting an MD5 or SHA-1 match as proof of authenticity against a determined attacker — fine against accidental corruption, not against someone who deliberately engineered a collision.
What this tool doesn't do
It doesn't compute HMAC (keyed hashes used for message authentication), it doesn't perform password hashing, and it can't reverse a digest back into the original input — hashing is one-way by design. For those needs, reach for a dedicated cryptography library or a password-hashing utility built for that purpose.
Sources & further reading
- NIST Computer Security Resource Center — approved hash functions (SHA-2, SHA-3) and their status
- RFC 6234 — the SHA family specification, including SHA-256 and SHA-512
- RFC 6151 — why MD5 collision attacks make it unsuitable for security use
- MDN Web Docs — SubtleCrypto.digest(), the browser API this tool runs on
Frequently asked questions
What is a cryptographic hash?
A cryptographic hash is a fixed-length fingerprint of your data — the same input always produces the same digest, but the function is one-way, so you can't reverse a hash back into the original text or file. That's why hashes are used to check integrity and store password verifiers rather than to hide recoverable data.
MD5 vs SHA-1 vs SHA-256/384/512 — which should I use?
For anything security-related, use SHA-256 or stronger (SHA-384, SHA-512). MD5 and SHA-1 are fast and still fine as non-security checksums, but both are broken against collision attacks and must not be used for signatures, certificates or password hashing. This hash generator shows all five at once so you can pick the right one.
How do I verify a downloaded file's checksum?
Open the File tab, drop in the file you downloaded, then paste the checksum published by the project (often an MD5 or SHA-256) into the Verify box. If any row lights up as a match, the file is intact and untampered; if nothing matches, the download is corrupt or altered. It's a full file checksum verifier, right in your browser.
Is my text or file uploaded anywhere?
No. Every hash is computed locally — SHA-1/256/384/512 use the browser's built-in Web Crypto API and files are read with FileReader, so your data never leaves your device. Nothing is uploaded, logged or stored on a server.
Why does MD5 work here when browsers don't support it?
The Web Crypto API deliberately omits MD5, so this hash generator ships a small pure-JavaScript MD5 implementation that runs locally in your browser — no external library or CDN. That's how you still get an MD5 alongside the SHA hashes with zero network calls.