A hash function turns any input — a word, a document, a 4 GB disk image — into a short, fixed-length fingerprint. This tool computes the common ones (MD5, SHA-1, SHA-256, SHA-384, SHA-512) and builds HMACs, all in your browser. This guide explains what hashes are good for, which ones are safe in 2026, and the difference between hashing, encryption, and password storage.

What hashes are actually for

Hashing has two everyday jobs: integrity and identification. When you download software and check its SHA-256 against the publisher's posted value, you are confirming the bytes arrived intact. When a Git commit, a content-addressed cache, or a deduplication system needs a short stable ID for a blob of data, a hash provides it. The defining property is determinism: the same input always yields the same digest, and any change — one flipped bit — produces a completely different one (the avalanche effect you can watch in the fingerprint above).

Which algorithms are safe in 2026

MD5 (1991) and SHA-1 (1995) are cryptographically broken: researchers have produced real collisions (two different files with the same hash), so they must never be used where an attacker could benefit from forging a match — signatures, certificates, tamper detection. They remain fine for non-adversarial checksums like detecting accidental corruption or deduplicating files.

The SHA-2 family — SHA-256, SHA-384, and SHA-512 — has no known practical collisions and is the right default for anything security-sensitive. SHA-512 is often faster than SHA-256 on 64-bit hardware, so 'bigger' does not mean 'slower' here.

Hashing is not encryption — and not password storage

Encryption is reversible with a key; hashing is one-way by design, so there is no 'unhash.' That makes hashes useless for confidentiality but ideal for verification.

Passwords are a special case. Raw fast hashes (even SHA-256) are a poor choice because their speed lets attackers test billions of guesses per second against a stolen database. Modern password storage uses a key-derivation function — bcrypt, scrypt, or Argon2 — that is deliberately slow and adds a per-user salt. If you are hashing passwords, reach for one of those, not the algorithms in this tool.

HMAC: proving who sent a message

A plain hash proves a message was not changed, but anyone can recompute it — so it cannot prove who sent the message. An HMAC fixes that by folding a shared secret key into the hash. The sender computes HMAC(key, message) and attaches it; the receiver recomputes it with the same key. A match proves both integrity and authenticity. This is the mechanism behind webhook signatures (Stripe, GitHub, Slack), AWS request signing, and JWT 'HS256' tokens. Use a long, random key and compare HMACs with a constant-time check on the server side.