Hash Generator
Generate MD5 and SHA hashes of any text, instantly and privately in your browser.
— — — — — How it works
A hash is a fixed-length fingerprint of your input: the same text always produces the same hash, but even a tiny change gives a completely different result, and you can't reverse a hash back into the original text. This tool computes the SHA family — SHA-1, SHA-256, SHA-384 and SHA-512 — using your browser's built-in crypto.subtle, and MD5 with a small library. All five digests are shown at once, as readable lowercase hex strings. Everything runs locally, so the text you hash is never uploaded, and every hash updates live as you type.
Because the calculation reads the text as UTF-8 bytes, the same characters always produce the same output — a useful property when you want to compare hashes across machines or projects.
Which algorithm to use
SHA-256 is the modern default for integrity checks, checksums and most general use. SHA-384 and SHA-512 produce longer digests for higher-security contexts. SHA-1 and MD5 are still common for non-security tasks like deduplication, cache keys or verifying a download against a published checksum, but they are considered cryptographically broken and should not be used for passwords or digital signatures. Whatever the format, matching hashes confirm that two inputs are identical; longer digests simply give you a larger, more collision-resistant output. Note that MD5 is 128 bits (32 hex characters), SHA-1 is 160 bits (40 characters), SHA-256 is 256 bits (64 characters), SHA-384 is 96 characters and SHA-512 is 128 characters.
How to hash text and copy the result
Type or paste your text into the box, and all five hashes update instantly with every keystroke — no button to press. Each algorithm has its own row with a Copy button that writes that hash straight to your clipboard using your browser's clipboard API. The results are plain lowercase hex, so you can paste them into a terminal, a config file or a comparison tool without reformatting. There is no size limit imposed by the tool itself; very large inputs are simply handled by your browser's hashing engine at its own speed.
A concrete example
Imagine a project publishes a downloadable archive with a SHA-256 checksum. You paste the expected value into one place and hash the archive contents with this tool, then compare the two strings — if they match exactly, you can be confident the file you received is the one that was published, unmodified. The same idea works for deduplication: hash each record's unique key and you get a stable, fixed-length identifier that is easy to index and compare, no matter how long the original text is. Since the hashing happens entirely on your device, you can do this with private or sensitive content without it ever leaving your computer.
What to expect
You get one row per algorithm (MD5, SHA-1, SHA-256, SHA-384, SHA-512), each showing the current digest as lowercase hex and a copy button beside it. The MD5 value is computed by a bundled library, while the four SHA variants run through your browser's native crypto.subtle — so the SHA outputs depend only on the standard algorithm, not on the page. If crypto.subtle is unavailable in a very old or unusual browser, the SHA rows show an error message instead of a value; on modern browsers everything works with no setup. No file is ever read or written, nothing is uploaded, and closing the page discards everything you entered.
Common problems and fixes
My hash doesn't match the one published by the project. Check that the input is byte-for-byte the same and uses the correct algorithm — hashing a file's contents as text, or with one extra space or newline, changes the result. The copy button doesn't seem to do anything. Clipboard access can be blocked by browser permissions or in some private-browsing modes; either click Copy again or select the hash text and copy it manually. One of the SHA rows shows an error. The page relies on crypto.subtle, which is only available over HTTPS (or on localhost); on an old or restricted browser try a modern one. I expected uppercase hex. This tool emits lowercase hex, matching what most checksum tools and sha256sum-style utilities produce — compare case-insensitively if your reference is uppercase.
Frequently asked questions
Can I get the original text back from a hash?
No. Hashing is one-way by design. The only way to "reverse" it is to try inputs until one produces the same hash.
Should I hash passwords with this?
Not for storage. Password storage needs a slow, salted algorithm like bcrypt or Argon2, not a plain fast hash. This tool is for checksums and general hashing.
Is my text uploaded anywhere?
No. All hashing happens in your browser and nothing you enter leaves your device.
Which hash length will I get for each algorithm?
MD5 returns 32 hex characters, SHA-1 returns 40, SHA-256 returns 64, SHA-384 returns 96 and SHA-512 returns 128. Each result is a fixed-length lowercase hex string regardless of the input length.
What's the difference between MD5, SHA-1, SHA-256, SHA-384 and SHA-512?
They are different hash functions producing different lengths and collision resistance. SHA-256, SHA-384 and SHA-512 are the modern SHA-2 family and are recommended for general use; MD5 and SHA-1 are faster and still common for non-security checks, but are cryptographically broken for security purposes.
Can I use this tool offline?
Yes for the SHA family. SHA-1, SHA-256, SHA-384 and SHA-512 are computed by your browser's built-in crypto.subtle, which needs no network. MD5 relies on a small library loaded from a CDN, so it needs an internet connection on first load; once the page is loaded, hashing itself stays local.