What a hash is
A cryptographic hash turns any input into a fixed-size fingerprint. Change one bit of the input and the whole output changes; given an output, there is no practical way back to the input; and it is infeasible to find two inputs with the same hash (for the algorithms that are still secure). That makes hashes useful for verifying downloads, detecting changes, deduplicating data and, with a salt and a slow algorithm, storing passwords.
| Algorithm | Output | Status | Use today |
|---|---|---|---|
| MD5 | 128 bits (32 hex) | Broken: collisions are trivial | Legacy checksums, cache keys. Never for security. |
| SHA-1 | 160 bits (40 hex) | Broken: collisions demonstrated (2017) | Git object IDs (being replaced). Not for signatures. |
| SHA-256 | 256 bits (64 hex) | Secure | The default: TLS, code signing, download checksums, Bitcoin. |
| SHA-384 | 384 bits (96 hex) | Secure | Where a larger margin is wanted; subresource integrity. |
| SHA-512 | 512 bits (128 hex) | Secure | Faster than SHA-256 on 64-bit CPUs; Linux password hashes (sha512crypt). |
HMAC
An HMAC mixes a secret key into the hash in a specific way (RFC 2104) so that only someone with the key can produce or check the value. It is the mechanism behind HS256 JWTs, webhook signatures (GitHub, Stripe), AWS request signing and TOTP codes. Plain hash(key + message) is not safe for this; HMAC exists to fix the length-extension weakness of that construction.
Verifying a download
- Find the published checksum on the download page (often a
SHA256SUMSfile). - Drop the downloaded file here, or run
sha256sum filein a shell. - Paste the published value in the compare box. A match means the file is byte-for-byte what was published.
A matching hash proves integrity, not authenticity: if an attacker can change the file they can change the checksum next to it. For authenticity you need a signature (GPG, Sigstore, minisign).
Passwords
Do not store passwords as SHA-256 hashes. Fast hashes can be guessed at billions per second on a GPU. Use a slow, salted, memory-hard function designed for the job: Argon2id, scrypt or bcrypt.
Questions
Which hash should I use?
SHA-256 unless you have a specific reason otherwise. It is secure, universally supported and fast. SHA-512 is a little faster on 64-bit hardware. MD5 and SHA-1 are fine only for non-security uses such as cache keys.
Can a hash be decrypted?
No. A hash is not encryption; there is no key and no inverse. What attackers do instead is guess inputs and compare hashes, which works for short or common inputs (hence rainbow tables) and is why passwords need salts and slow hashes.
Why is my MD5 different from the one on the website?
Usually line endings (CRLF versus LF), a trailing newline, or a different text encoding. Hash the exact bytes: for a file, use the drop zone rather than pasting its contents.
Is the SHA-256 computed here the same as sha256sum?
Yes, byte for byte. The tool uses the browser's WebCrypto implementation for the SHA family. For text input the bytes are the UTF-8 encoding of what you typed.
Is my file or password sent anywhere?
No. Hashing is done locally by JavaScript. The site has no server-side component that could receive it.