Hash generator
Check that the file you downloaded is the file they published. Drop it in, paste their checksum, and see if it matches.
Runs in your browser. Nothing you paste or drop here is uploaded anywhere.
HMAC key (optional)
Leave empty for plain hashes. With a key, every row shows the HMAC instead.
A bare hash, a line like e3b0… file.iso, or a whole .sha256 file.
Match Same SHA-256 as the one you pasted.
- MD5
5d41402abc4b2a76b9719d911017c592 - SHA-1
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d - SHA-256
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 - SHA-384
59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f - SHA-512
9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043
How to use it
- Drop the downloaded file on the File tab, or type on the Text tab.
- Paste the checksum from the download page into Expected checksum. A bare hash, a
sha256sumline or a whole.sha256file all work. - Read the verdict. The algorithm is picked by the length of what you pasted, so there is nothing to choose.
- Copy any hash with its Copy button, as lowercase hex, uppercase hex or Base64.
What it does
The tool computes MD5, SHA-1, SHA-256, SHA-384 and SHA-512 at once. The SHA family comes from the browser’s built-in Web Crypto API (crypto.subtle). MD5 is not in Web Crypto, so it is a small hand-written implementation that reads the file in 2 MB chunks. Both are checked against md5 and shasum output.
Limits, honestly: Web Crypto hashes one whole buffer, so for SHA the file has to fit in memory. Up to about 2 GB works in current browsers; above that you get MD5 only. Web Crypto also only exists on secure pages (https or localhost). For a 6 GB ISO the terminal is the better tool: shasum -a 256 file.iso on macOS, sha256sum file.iso on Linux, Get-FileHash file.iso in PowerShell.
Text is encoded as UTF-8 and hashed exactly as typed. That is where most “wrong” hashes come from: echo hello | sha256sum hashes hello plus a newline. Use printf '%s' hello | sha256sum instead, or tick Add a newline at the end here to match what echo did.
Fill in an HMAC key and every row becomes an HMAC of the input with that key (HMAC-SHA-256 and the rest), which is what webhook signatures use. I mostly check checksums after copying cPanel backups between servers; the cPanel CLI guide has the commands. The same SHA-256 also sits inside your SSL certificate, where the CA signs a hash of it: see the SSL guide.
Questions
Why does my hash differ from the one on the website?
Because you hashed something slightly different. For files, it is usually an incomplete download or a checksum for another version or architecture. For text, it is a trailing newline (echo adds one), Windows line endings or a different encoding. One changed byte changes the whole hash, so an “almost the same” hash does not mean an almost-the-same file.
Is MD5 still safe?
For catching corrupted downloads, yes; for security, no. Random corruption will not produce a matching MD5. But crafting two different files with the same MD5 has been practical since 2004, and SHA-1 went the same way in 2017. If the checksum has to prove that nobody tampered with the file, use SHA-256 and get the checksum from somewhere other than the file’s own mirror, ideally signed.
How do I check a SHA-256 checksum on the command line?
Run shasum -a 256 file.iso on macOS, sha256sum file.iso on Linux, or Get-FileHash file.iso in Windows PowerShell (SHA-256 is its default). If the publisher ships a SHA256SUMS file, sha256sum -c SHA256SUMS checks every file listed in it.
Can an MD5 or SHA-256 hash be decrypted?
No. A hash isn’t encrypted, it’s a fingerprint: there is no key and no way to run it backwards. The “MD5 decrypt” sites keep huge tables of hashes of common words and leaked passwords and look yours up. That finds password123, not a random file or a long passphrase. It is also why passwords should be stored with slow, salted hashes like bcrypt or Argon2, never plain MD5 or SHA-256.
SHA-256 or SHA-512: which should I use?
To check a download, use whichever one the publisher lists; the tool computes all of them anyway. Both are secure today. SHA-256 is the usual default for checksums and certificates. SHA-512 gives a longer hash and, in software on 64-bit machines, is often a bit faster. SHA-384 is SHA-512 cut short (with different starting values); you mostly meet it in TLS and in integrity="sha384-…" attributes on script tags, which take the Base64 version.