Hash Generator
Generate MD5, SHA-1, SHA-256, and SHA-512 cryptographic hashes — runs locally in your browser
About this ToolHow it works, benefits & use casesTap to collapse
Paste any text and this hash generator computes its MD5, SHA-1, SHA-256 and SHA-512 digests at once. SHA-1, SHA-256 and SHA-512 run through the browser's native Web Crypto API (crypto.subtle.digest); MD5 — which Web Crypto deliberately omits — is computed by a built-in JavaScript implementation, so you still get all four checksums from a single input. The text is encoded as UTF-8 before hashing, which means hashing is case-sensitive and whitespace-significant: "Hello" and "hello" produce different digests, and even an empty string yields a valid hash. Each result is shown as lowercase hexadecimal with its own copy button, plus a combined "all hashes" block you can copy, download as a .txt file, or pipe into another tool. Everything runs locally in your browser — your input is never uploaded.
How to Use
- 1Type or paste the text you want to hash into the input box (or click "Load example" to drop in "Hello, World!").
- 2Click "Generate hashes" to compute MD5, SHA-1, SHA-256 and SHA-512 from the same input.
- 3Read each digest in the results list — every algorithm has its own row with a one-click copy button.
- 4Use the copy icon next to any single hash, or grab the combined "All hashes" panel below.
- 5Download the full set as hashes.txt, or pipe the output into another tool from the output panel.
Key Benefits
- Computes MD5, SHA-1, SHA-256 and SHA-512 simultaneously from one input
- Uses the browser's native Web Crypto API for the SHA family
- Includes MD5 even though Web Crypto omits it, via a built-in implementation
- Output is lowercase hex with per-algorithm copy buttons
- Combined "all hashes" block can be copied, downloaded, or piped onward
- Handles UTF-8 text including emoji and accented characters correctly
- Runs entirely client-side — nothing you hash is uploaded
Common Use Cases
- Generating a checksum to verify a downloaded file or string matches an expected value
- Producing a SHA-256 digest for a cache key, ETag, or content-addressable identifier
- Creating test fixtures that expect a specific MD5 or SHA hash
- Comparing a stored hash against a freshly computed one during debugging
- Learning how the same input maps to different digest lengths across algorithms
Hashes are case-sensitive and whitespace-significant.
Was this tool helpful?
Share Your Experience
Help others discover this tool!
Related guides
- Guide · 13 min readJWT Decoding and Verification: What Is Actually Safe to TrustDecoding a JWT and verifying one are not the same operation, and only one proves anything. A practical guide to the three Base64url parts, the alg attacks that breached real systems, correct verification with jose, claim validation, and safe client storage.Read the guide
- Guide · 14 min readPublic Form APIs: What You Can and Can't Trust From the BrowserYour form is a suggestion; your endpoint is the contract. A practical guide to securing contact forms, newsletters, comments, and feedback endpoints: server-side validation, email header injection, honeypots and rate limiting, anchored origin checks, client-supplied identity, and double opt-in.Read the guide
Related tools
- ASCII ConverterConvert between ASCII and text
- Base64 Encoder/DecoderEncode and decode Base64 strings
- Bearer Token GeneratorGenerate Bearer authentication tokens
- Random String GeneratorGenerate random strings with custom options
- API Key GeneratorGenerate secure API keys and tokens
- Random Bytes GeneratorGenerate cryptographically secure random bytes
It produces four digests from a single input at once: MD5 (128-bit), SHA-1 (160-bit), SHA-256 and SHA-512. SHA-1, SHA-256 and SHA-512 are computed with the browser's Web Crypto API, while MD5 uses a built-in JavaScript implementation because Web Crypto does not support it.
Yes. The input is encoded as UTF-8 before being hashed, so capitalisation and whitespace both matter. "Hello" and "hello", or a string with a trailing space, will each produce completely different hashes.

