Hash Generator
Compute MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes for any text or file. Runs in your browser via WebCrypto — your input never leaves your device.
- Runs in browser
- No signup
- No tracking
How to use Hash Generator
Paste text — hashes update live.
Or click 'Hash file' to hash any file's bytes.
Copy a specific digest with its row's Copy button.
Use the Verify field to check whether a known hash matches the current input.
When to use it
Verifying a downloaded ISO or installer against the publisher's checksum.
Generating cache keys for static assets.
Producing deterministic IDs from canonical content.
Spot-checking that two files are byte-identical.
What it fixes
Online hashers that upload your file to a server.
Switching to the terminal just to run `shasum`.
Hash mismatches caused by invisible line-ending or BOM differences.
About Hash Generator
Hash functions take bytes and return a fixed-length fingerprint. SHA-256 is the modern default — it's what package managers, git, and TLS use. MD5 and SHA-1 are broken for security but still useful as fast checksums (CDN cache keys, dedup IDs).
This tool runs everything locally. SHA variants come from the browser's WebCrypto API, which is hardware-accelerated on most platforms. MD5 uses a small RFC 1321 implementation included on the page. Drop a file or paste text and all five digests update live.
References: MDN — SubtleCrypto.digest · RFC 1321 — MD5 Message-Digest
Frequently asked
Are the hashes computed locally?
Yes. SHA hashes use the browser's WebCrypto SubtleCrypto API; MD5 uses a small in-page JavaScript implementation. Neither sends data anywhere.
Which hash should I use?
Use SHA-256 (or SHA-512) for new code — verifying downloads, fingerprinting content, etc. MD5 and SHA-1 are insecure for anti-tamper but are still common as fast checksums where collision resistance isn't required.
Can I hash a file, not just text?
Yes. Click 'Hash file' and pick any file. The bytes are read in your browser and hashed locally.
Why are my hashes different from the command line?
Hashes are exact byte-for-byte. A trailing newline or different line endings (LF vs CRLF) changes the input and therefore the output. Make sure the bytes match.
Discussion
Related tools
All toolsBase64 Encoder & Decoder
Encode text to base64 or decode it back. Full UTF-8 support, runs in your browser.
Encode / DecodeURL Encoder & Decoder
Percent-encode URL components or decode them back. Built on encodeURIComponent.
Encode / DecodeImage to Base64
Convert any image to a base64 data URI. Copy as data URI, raw base64, CSS, or HTML snippet.
Encode / Decode