Hash Generator 🔒 Your data never leaves your browser.
MD5, SHA-1, SHA-256 and SHA-512 of any text — all at once.
⚠ MD5 and SHA-1 are broken for security — use them only for checksums and legacy interop.
About this tool
A hash function maps any input to a fixed-length fingerprint: change one character and the whole hash changes. SHA-256 and SHA-512 are computed with the browser's Web Crypto API; MD5 and SHA-1 are included for checksums and legacy systems — both are cryptographically broken, so never use them for passwords or signatures.
All four hashes update live as you type, entirely on your machine. Handy for verifying file checksums, generating cache keys, or comparing configs without exposing their contents.
Frequently asked questions
Is hashing the same as encryption?
No. Hashing is one-way — you can't recover the original text from a hash. Encryption is reversible with the right key. Never use a hash to "protect" data you need to get back later.
Which algorithm should I use — MD5, SHA-1, or SHA-256?
For anything security-related (passwords, signatures, integrity checks against a hostile actor) use SHA-256 or SHA-512. MD5 and SHA-1 are broken for collision resistance and are only fine for non-adversarial checks like deduplicating files or catching accidental corruption.
What does HMAC add that a plain hash doesn't?
A plain hash lets anyone recompute it, so an attacker can swap the data and its hash together. HMAC mixes in a secret key, so only someone who knows the key can produce a matching hash — that's what makes it useful for verifying a message really came from someone who holds the secret.
Is my file or text uploaded anywhere?
No. Hashing runs entirely in your browser using the Web Crypto API (and a local MD5 implementation) — nothing you type or drop here is sent to a server.
Why does MD5 sometimes need a "Compute anyway" click for large files?
MD5 has no native browser implementation, so this tool computes it in plain JavaScript on the main thread. For very large files that would freeze the tab, so it's skipped by default — clicking "Compute anyway" runs it regardless.