Processed entirely on your device — nothing is uploaded
How to use the hash generator
- 1Choose an algorithm — SHA-256 is the sensible default.
- 2Type text to hash it live, or drop a file below.
- 3Compare the result against the checksum you were given.
- 4Copy the digest if you need it elsewhere.
What a hash is for
A hash function turns input of any length into a fixed-length fingerprint. The same input always produces the same digest, and any change to the input — a single flipped bit — produces a completely different one.
That property makes hashes useful for integrity checking. A project publishes the SHA-256 of its installer; you hash your download and compare. If they match, your copy is byte-identical to what was published. If they do not, something went wrong in transit, or the file is not what it claims to be.
Hashing is one-way. You cannot reconstruct the input from the digest, which is what separates it from encoding schemes such as Base64. What you can do, if the input space is small, is hash every candidate and look for a match — which is exactly why hashing passwords with a plain SHA function is inadequate.
Which algorithm to use
SHA-256 is the right default for anything new. It is widely supported, has no known practical weaknesses, and is what most projects publish checksums in.
SHA-512 is not meaningfully more secure for most purposes but is faster than SHA-256 on 64-bit hardware. Use it if something specifies it.
SHA-1 is cryptographically broken — a practical collision was demonstrated in 2017 — and should not be used where an adversary might try to forge a match. It remains fine for non-adversarial integrity checks and still appears widely in legacy systems and in Git.
MD5 is thoroughly broken and collisions can be generated in seconds. It is nonetheless still published as a download checksum by many projects, and for catching accidental corruption it remains perfectly serviceable. Because the Web Crypto API deliberately omits it, this tool includes its own implementation so those checksums can still be verified.
Verifying a download properly
Drop the file into the box and compare the digest to the published one. The comparison is exact: hashes match completely or not at all, so there is no such thing as being close.
The file is read locally by your browser, which matters practically as much as it does for privacy — uploading a four-gigabyte ISO to a hashing website to verify it would be absurd, and yet server-side tools require exactly that.
One caveat about what verification proves. Matching the checksum on the same page as the download only tells you the file arrived intact; if an attacker controlled the page, they controlled both. Real assurance comes from a checksum published somewhere independent, or better, from a signature you can verify against a known key.
Do not hash passwords this way
A general-purpose hash function is designed to be fast, and speed is precisely the wrong property for password storage. Modern hardware computes billions of SHA-256 hashes per second, which makes brute-forcing a stolen database of them entirely practical.
Password hashing needs a function that is deliberately slow and memory-hard: Argon2id is the current recommendation, with bcrypt and scrypt as established alternatives. All of them incorporate a per-password salt, so identical passwords do not produce identical hashes, and a tunable cost factor that can be raised as hardware improves.
Use this tool for integrity checking, deduplication, and generating identifiers. Not for storing credentials.
Frequently asked questions
Which hash should I use?
SHA-256 for anything new. SHA-1 and MD5 are broken for adversarial use, though still fine for detecting accidental corruption.
Why is MD5 not in my browser's crypto API?
Because it is cryptographically broken and browsers decline to encourage it. This tool includes its own implementation so you can still verify legacy checksums.
Can I get the original text back from a hash?
No. Hashing is one-way. For small input spaces an attacker can hash candidates and look for a match, which is why passwords need a different approach.
Is my file uploaded to hash it?
No. The file is read locally — which is the only practical way to checksum a multi-gigabyte download.
Should I hash passwords with SHA-256?
No. Use Argon2id, bcrypt or scrypt. General hashes are far too fast, which makes brute-forcing stolen databases practical.
My checksum does not match. What now?
Download again — most mismatches are truncated or corrupted transfers. If it still differs, do not run the file and check the source.