Hash generator
Generate MD5, SHA-1, SHA-256, SHA-384 and SHA-512 hashes of text or a file, and compare against a published checksum. Files are never uploaded.
Runs in your browser
- MD5
- -
- SHA-1
- -
- SHA-256
- -
- SHA-384
- -
- SHA-512
- -
MD5 and SHA-1 are broken for security. Use them only for checksums.
Verifying a download
This is what most people want a hash for. A project publishes the SHA-256 of a release file; you compute the hash of the copy you received and compare. If they match, your copy is byte-identical to the one that was published.
Pick the file above rather than pasting text — it is read and hashed in your browser, so even a large installer never leaves your machine. Paste the published checksum into the comparison box and it will tell you which algorithm matched.
At the command line:
shasum -a 256 file.iso # macOS, Linux
certutil -hashfile file.iso SHA256 # Windows
Which algorithm to use
| Algorithm | Output | Status |
|---|---|---|
| MD5 | 128 bits, 32 hex characters | Broken. Collisions are trivial to produce |
| SHA-1 | 160 bits, 40 hex characters | Broken. A practical collision was demonstrated in 2017 |
| SHA-256 | 256 bits, 64 hex characters | The current default |
| SHA-384 | 384 bits, 96 hex characters | SHA-512 truncated; used in some TLS suites |
| SHA-512 | 512 bits, 128 hex characters | Often faster than SHA-256 on 64-bit hardware |
“Broken” here means a collision can be constructed: an attacker can build two different files with the same digest. It does not mean a hash can be reversed. MD5 remains fine for detecting accidental corruption — a truncated download, a bad disk — and that is why checksums on mirrors are still sometimes published in it.
Hashes are not for passwords
A raw SHA-256 of a password is fast to compute, which is exactly the wrong property: commodity hardware tests billions of candidates per second against a stolen table. Password storage needs a deliberately slow, salted, memory-hard function — argon2id, scrypt, or bcrypt — with per-user salts. No general-purpose hash generator, including this one, should be part of that pipeline.
Why the same input always gives the same digest
A hash is a pure function of its input. There is no randomness and no key, so the same bytes produce the same digest on every machine, forever. That determinism is what makes comparison meaningful — and it is also why a hash alone proves nothing about who produced a file. For that you need a signature, which combines a hash with a private key.
Note that a trailing newline changes everything. echo hello | shasum hashes six bytes,
not five, which is the usual reason a command-line digest disagrees with one computed
from text pasted into a box.
Your data stays here
Digests are computed in your browser using WebCrypto, with MD5 supplied by a small module loaded on demand. Nothing you type and no file you pick is uploaded.