Hash Generator Online Free — MD5, SHA-256, SHA-512 & HMAC from Text or File
What's included
Features
About this tool
Generate MD5, SHA-256, SHA-512 Hashes Online — Verify File Checksums & HMAC
You need to generate a SHA-256 hash of some text for an API signature. Or you downloaded a file and want to verify its checksum matches what the publisher listed. Or you need to compute an HMAC-SHA256 signature with a secret key to debug a webhook. Type or upload your data here and get all five hash algorithms at once — instantly, in your browser.
This tool computes MD5 (32 hex chars), SHA-1 (40 chars), SHA-256 (64 chars), SHA-384 (96 chars), and SHA-512 (128 chars) simultaneously as you type — no button click, no server round-trip. For files, drag and drop any file and all five hashes appear within a second. Nothing is uploaded. The SHA algorithms use the browser's native WebCrypto API (hardware-accelerated); MD5 uses a JavaScript implementation.
Hash verification: Paste the expected checksum from the download page into the Verify field. The tool reads the hash length to auto-detect the algorithm and shows a green checkmark (match) or red mismatch indicator instantly. You don't need to specify whether it's MD5 or SHA-256 — the length tells the tool which algorithm it is.
HMAC mode: Enable HMAC and enter a secret key. HMAC-SHA256 combines the hash function with your key so only someone who knows the key can reproduce the output. This is the signing mechanism behind AWS Signature Version 4, Stripe webhook verification, GitHub webhook validation, and JWT HS256/HS512 tokens.
MD5 is the odd one out under the hood: because the WebCrypto SubtleCrypto API deliberately does not expose MD5 as a supported digest algorithm — one practical consequence of it being considered cryptographically broken — this tool implements the full MD5 algorithm from scratch in plain JavaScript, running the standard 64-round Merkle–Damgård construction over four working registers exactly as the original 1992 specification defines it. The four SHA variants, by contrast, call crypto.subtle.digest() directly, so they run as native, hardware-accelerated code in the browser rather than interpreted JavaScript — part of why hashing a large file feels effectively instant once it is read into memory. HMAC mode excludes MD5 for the identical reason: SubtleCrypto only supports HMAC construction over its own built-in digest algorithms, so MD5 has no native HMAC path to hook into. The Verify field does not actually guess your algorithm from the pasted string's length — it normalizes your input to lowercase and directly compares it against all five currently-computed hash values at once, so whichever algorithm produces an exact match is reported by name; this is a more forgiving check than a length-based guess, since it still works correctly even if two algorithms happened to share a digest length.
Hashes are one-way: you cannot reverse a hash to get the original input. They are used to verify data hasn't changed (same input always produces the same hash), and to detect tampering (even a single changed character produces a completely different hash). Never use MD5 or SHA-1 for security-critical applications — they're cryptographically broken. Use SHA-256 or higher.
Step by step
How to Use
- 1Choose Text or File input modeUse the Text / File toggle in the header to select your input type. In Text mode, type or paste any string — all five hashes (MD5, SHA-1, SHA-256, SHA-384, SHA-512) update live as you type with no button press needed. In File mode, drag and drop any file onto the upload zone or click to browse — all five hashes appear within a second as soon as the file is read into memory. Nothing is uploaded to any server in either mode.
- 2Enable HMAC mode for authenticated signatures (optional)Toggle HMAC in the header to switch to HMAC (Hash-based Message Authentication Code) mode. A secret key input appears — enter your signing key. HMAC results update for SHA-1, SHA-256, SHA-384, and SHA-512 as you type in the input area. MD5 is excluded from HMAC mode because it is cryptographically broken. Use this to generate and verify API request signatures (AWS, Stripe, GitHub webhooks, JWT HS256).
- 3Read your hash resultsEach hash algorithm shows its result in its own row — MD5 (32 hex chars), SHA-1 (40), SHA-256 (64), SHA-384 (96), SHA-512 (128). Toggle Uppercase to switch between lowercase hex (the Linux/web convention) and uppercase hex (used by some Windows tools and API specifications). Both representations encode the same value — only the character case differs.
- 4Copy individual or all hashesClick the copy icon next to any algorithm row to copy just that hash. Click Copy all in the results header to get all five hashes formatted with algorithm labels — useful for sharing checksums in release notes or documentation. The confirmation tick disappears after 1.8 seconds.
- 5Verify a hash against an expected checksumPaste the expected hash into the Verify field at the bottom of the results panel. The tool reads the hash length to auto-detect the algorithm (32 chars = MD5, 40 = SHA-1, 64 = SHA-256, 96 = SHA-384, 128 = SHA-512) and compares it against your computed result. A green checkmark confirms a match; red "No match" means the data or algorithm differs.
Real-world uses
Common Use Cases
Got questions?
Frequently Asked Questions
Type or paste your text into the input area. All five hash algorithms update in real time — SHA-256 appears immediately as you type. No button click needed. The SHA-256 hash is the 64-character hex string in the SHA-256 row. Click the copy icon next to it to copy just that hash, or use Copy all to get all five formatted together.
Switch to File mode using the toggle at the top. Drop the file onto the upload area or click to browse — the tool reads the file in your browser and displays all five hash values immediately. Find the checksum published by the software vendor (SHA-256 or MD5, typically listed on the download page or in a .sha256 file). Paste it into the Verify field. The tool reads the hash length to auto-detect the algorithm and shows a green checkmark for a match or red mismatch indicator instantly.
Enable HMAC mode using the toggle in the header. An HMAC secret key input appears — enter your signing key. Type or paste your message (the payload or string to sign) in the text area. The HMAC-SHA256 result appears in the SHA-256 row. This output matches the HMAC-SHA256 implementation in all standard libraries and is compatible with AWS Signature Version 4, Stripe webhook signatures, GitHub webhook validation, and JWT HS256 signing.
MD5 (32 chars) and SHA-1 (40 chars) are both cryptographically broken — intentional collisions can be generated in seconds. Do not use either for security purposes. SHA-256 (64 chars) is the current industry standard for all new security applications: file integrity, API signing, digital signatures, and certificate fingerprints. SHA-512 (128 chars) provides an extra security margin — useful for high-security applications or hardware that runs 64-bit operations faster. Use SHA-256 as your default for everything except legacy systems that require MD5 or SHA-1.
For detecting accidental corruption — yes, MD5 is fine. If you just want to confirm a file wasn't corrupted during download and you're not worried about a motivated attacker, MD5 works. But for security-critical integrity checks — verifying that a file wasn't deliberately tampered with — MD5 is broken. A skilled attacker can engineer two different files with the same MD5 hash. Use SHA-256 for all security-sensitive integrity verification.
Yes, large files work. The File mode uses the FileReader API to read the file as an ArrayBuffer and passes it to the WebCrypto SubtleCrypto.digest() method — no size limit is imposed by this tool. WebCrypto is hardware-accelerated in all modern browsers. A few-hundred-megabyte file typically hashes in under a second. Very large files (multiple GB) may take a few seconds as the file is read into browser memory. The UI shows a loading state so you know it's working. Nothing is uploaded — the file stays entirely in your browser.
No. Hash functions are one-way by design. Given a hash output, it is computationally infeasible to reconstruct the input — this is called pre-image resistance. You cannot "decode" a SHA-256 hash. The only way to find the original input is to hash candidate values and compare — which is why dictionary attacks and rainbow tables work against weak passwords. For strong random passwords and data, hashes are irreversible in practice.
Yes — 100% private. All hashing runs in your browser using the native WebCrypto API for SHA algorithms and a JavaScript implementation for MD5. Nothing is transmitted to any server. Safe for API secret keys, file contents, credentials, or any data you would not want to share with a third party. The tool also works fully offline once the page has loaded.