SHA-3 Hash Generator (Keccak SHA3-256)
Generate SHA-3 hashes online free. NIST FIPS 202 sponge construction — the post-SHA-2 standard. SHA3-256 output in 64 hex chars. Browser-only via lazy-loaded js-sha3; zero uploads.
What Is SHA-3?
SHA-3 (Secure Hash Algorithm 3) is the third generation of NIST's Secure Hash Standard, standardized in FIPS 202 in August 2015. Unlike SHA-1 and SHA-2, which are based on the Merkle-Damgård construction, SHA-3 uses a radically different design called the sponge construction — a choice NIST made deliberately to ensure that a cryptanalytic break of SHA-2 would not automatically compromise SHA-3.
The NIST SHA-3 competition (2007–2012): NIST solicited public submissions worldwide in 2007. After three evaluation rounds, 64 candidates were narrowed to five finalists: BLAKE, Grøstl, JH, Keccak, and Skein. In October 2012, Keccak — designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche from STMicroelectronics and NXP Semiconductors — was selected as the winner. All five finalists were considered secure; Keccak's unique sponge-based design gave it the structural diversity NIST prioritized.
The sponge construction: SHA-3 absorbs input into a 1600-bit state (the Keccak-f[1600] permutation) in the absorb phase, then squeezes output bits from the state in the squeeze phase. For SHA3-256, the rate/capacity split is 1088/512 bits. Because only 256 of the 1600 internal state bits appear in the output, an attacker cannot reconstruct the full state from the hash — making length-extension attacks structurally impossible. This contrasts with SHA-256, where the full internal state is exposed in the output, requiring HMAC to prevent length-extension.
SHA-3 vs. Keccak — the padding difference: NIST modified the original Keccak submission by changing the domain separation padding from 0x01 to 0x06. This means NIST SHA3-256 and original Keccak-256 produce different 64-hex-character outputs for every input. This is not a theoretical concern — it is why Ethereum's keccak256 (frozen before FIPS 202 was finalized) differs from this tool's SHA3-256 output for the same string. Never use this tool to replicate Ethereum address derivation.
FIPS 202 defines four SHA-3 variants: SHA3-224 (56 hex chars), SHA3-256 (64 hex chars), SHA3-384 (96 hex chars), SHA3-512 (128 hex chars). This tool implements SHA3-256, the most common variant and the one most directly comparable to SHA-256.
Library note: SHA-3 is not yet in the browser's Web Crypto API spec (crypto.subtle supports SHA-1, SHA-256, SHA-384, SHA-512 only). This tool lazy-loads the js-sha3 JavaScript library (~10 KB gzipped) on first use. After that single download, all computation runs locally in your browser — no input data is ever transmitted.
When to use SHA-3: new protocols requiring structural diversity from SHA-2; keyed MACs without the HMAC wrapper (KMAC128/256 per NIST SP 800-185); post-quantum hedging as a SHA-2 backup; compliance with systems that mandate FIPS 202. When to stick with SHA-256: universal library support, hardware acceleration (SHA-NI extensions), existing protocol compatibility, and most everyday integrity use cases where SHA-256 is already the established standard.
// SHA-3 (NIST FIPS 202 SHA3-256) using js-sha3 library
import { sha3_256 } from 'js-sha3';
const hash = sha3_256('Hello, World!');
// → '882f4b6991a775295186a4e3cc5ece9fc0b618c8c3e7a7beafdd0f56f13ae43b'
// Note: this differs from Ethereum's keccak256 for the same input:
// keccak256('Hello, World!') = 'acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f'
// The difference is the padding byte: 0x06 (SHA-3) vs 0x01 (original Keccak) SHA-3 Examples
Verify NIST FIPS 202 test vector
abc
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532
SHA3-256("abc") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 — this is the official NIST FIPS 202 test vector. Paste "abc" into the tool and confirm this exact output to verify you are computing NIST SHA-3 (not original Keccak). This single test distinguishes a FIPS-compliant SHA-3 implementation from one using the older Keccak padding byte.
Keccak vs SHA-3 distinction — same input, different output
Hello
SHA3-256("Hello") from this tool (NIST FIPS 202) = 8ca66ee6b2fe4bb928a8e3cd2f508de4119c0895f22df86f0ab7e30e487e4500. Ethereum's keccak256("Hello") = 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2. Same input, different 64-hex-char outputs. The difference is the padding suffix: NIST SHA-3 uses 0x06 while original Keccak (what Ethereum froze in 2013) uses 0x01. Ethereum predates NIST's 2015 standardization and permanently forked from the FIPS 202 variant.
Post-quantum archival hash
NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management
SHA3-256 provides 128-bit pre-image resistance against Grover's algorithm on a quantum computer — the same effective security level as SHA-256 against quantum attack. For data that must remain tamper-evident beyond 2050, using SHA-3 alongside SHA-256 provides defense in depth: if a break is found in one algorithm's construction (Merkle-Damgård for SHA-2; Keccak sponge for SHA-3), the other remains secure. Institutional archives and government documents increasingly use dual-hash manifests (SHA-256 + SHA3-256) as a hedge. See also SHA-256 Generator for the SHA-2 side of this hedge.
HMAC-SHA3-256 keyed authentication
POST /api/ledger
{"amount":250000,"from":"acct-A","to":"acct-B"} HMAC-SHA3-256 is a modern alternative to HMAC-SHA-256 for keyed message authentication. Because SHA-3's sponge construction is natively resistant to length-extension attacks (the squeezing phase discards internal state), a plain SHA3-256 keyed MAC (KMAC, defined in NIST SP 800-185) is also safe — unlike raw SHA-256, which requires the HMAC wrapper to defend against length-extension. For new high-assurance APIs and financial systems, HMAC-SHA3-256 (or KMAC128) provides stronger architectural guarantees than HMAC-SHA-256. Paste a canonical request body here to inspect the SHA3-256 fingerprint before applying HMAC.
How to Generate SHA-3 Hashes
- 1
Paste text into the input field
Select the Text tab and type or paste any string. The SHA3-256 hash updates live as you type. On first use, the js-sha3 library (~10 KB) is fetched and cached — you may notice a brief delay on the very first hash; all subsequent hashes are instant. The algorithm is already set to SHA-3 (NIST FIPS 202 SHA3-256).
- 2
Copy the 64-character hex output
Click the Copy button next to the hash result. The 64-character lowercase hex string is copied to your clipboard. Use the Uppercase toggle if your target system requires uppercase. This output matches what any FIPS 202-compliant SHA3-256 implementation produces — but note it differs from Ethereum's keccak256 for the same input.
- 3
Verify with the Compare tab
Switch to the Compare tab and paste two SHA3-256 hashes side by side. The tool uses constant-time comparison to report match or mismatch without leaking timing information. Useful for verifying NIST CAVP test vectors, checking archive manifests, or confirming that two SHA3-256 implementations produce identical output.
Technical Details
- Algorithm: Keccak-f[1600] sponge construction
- SHA3-256 applies the Keccak-f[1600] permutation (24 rounds of theta, rho, pi, chi, iota operations on a 5×5×64 state array) in a sponge construction with rate=1088 bits and capacity=512 bits. Input is absorbed in 136-byte (1088-bit) blocks; 256 bits of output are squeezed. The FIPS 202 domain separator appends 0x06 before padding. Implementation: NIST FIPS 202 (2015) section 6.
- Output: SHA3-256 by default, 64 hex characters (FIPS 202 also defines 224/384/512)
- This tool outputs SHA3-256: always exactly 64 hexadecimal characters (256 bits = 32 bytes). NIST FIPS 202 also standardizes SHA3-224 (56 chars), SHA3-384 (96 chars), and SHA3-512 (128 chars) — all using the same Keccak-f[1600] permutation with different rate/capacity splits. The output length is fixed regardless of input size.
- Performance: lazy-loaded js-sha3 (~10 KB); ~150–400 MB/s in browser
- Unlike SHA-2 routes (which use the browser's native Web Crypto API), SHA-3 is not in the Web Crypto spec. This tool loads the js-sha3 library (~10 KB gzipped) on first use, then caches it. Typical throughput: 150–400 MB/s in JavaScript, versus 400–700 MB/s for SHA-256 via Web Crypto. For text hashing (kilobytes) the difference is imperceptible. The main bundle for other SHA routes is unaffected by this lazy load.
- Standards: NIST FIPS 202 (2015), NIST SP 800-185 (KMAC), NIST IR 8105
- Standardized in FIPS 202 (August 2015). NIST SP 800-185 (2016) defines KMAC128 and KMAC256 — SHA-3-based keyed MAC functions that are natively length-extension immune without the HMAC wrapper. NIST IR 8105 recommends SHA-3 variants for post-quantum security margin. Currently approved for all security strength levels through 2030 and beyond under NIST SP 800-131A Rev 2.
Best Practices
- Do not confuse SHA3-256 with Ethereum's keccak256
- They are different algorithms with different outputs for every input. This tool computes NIST FIPS 202 SHA3-256 (padding byte 0x06). Ethereum's
keccak256uses original Keccak padding (0x01). If you are computing Ethereum address hashes, EVM storage slots, or Solidity keccak256() results, you need a keccak256-specific tool — this tool will give you wrong answers for those use cases. - Use SHA-3 as a hedge alongside SHA-256, not as a replacement
- SHA-3 and SHA-2 use structurally different designs (sponge vs. Merkle-Damgård). A dual-hash manifest (SHA-256 + SHA3-256) gives defense in depth: if a cryptanalytic break is ever found in one family's construction, the other remains secure. For long-term archival data and government records, NIST recommends considering this dual-algorithm approach. For everyday use, SHA-256 alone remains perfectly sufficient.
- Prefer KMAC over HMAC-SHA3-256 for new keyed MAC designs
- NIST SP 800-185 defines KMAC128 and KMAC256 — purpose-built keyed MACs based on SHA-3. Because the sponge construction is natively length-extension immune, KMAC does not need the double-hashing wrapper that HMAC requires for safety. For new protocols that have flexibility in MAC algorithm choice, KMAC128 (128-bit security) or KMAC256 (256-bit security) are cleaner and slightly more efficient than HMAC-SHA3-256.
- Use constant-time comparison when verifying SHA-3 hashes in code
- When comparing two SHA3-256 hashes in code, always use a constant-time equality function: Node.js
crypto.timingSafeEqual(), Pythonhmac.compare_digest(), Gosubtle.ConstantTimeCompare(). Naive string equality (=== or ==) leaks timing information that can allow an attacker to reconstruct the expected hash byte-by-byte. This applies equally to SHA-3 and all other hash functions. This tool's Compare tab already uses constant-time comparison.
SHA-3 FAQ
Is SHA-3 the same as Keccak?
0x01 suffix byte before padding; NIST SHA-3 (FIPS 202, 2015) appends 0x06. This single-byte difference means SHA3-256 and Keccak-256 produce different 64-character outputs for every input. The algorithms are structurally identical otherwise — same Keccak-f[1600] permutation, same sponge construction. When someone says "Keccak" in the Ethereum/blockchain context, they almost always mean the original pre-FIPS padding variant, not NIST SHA-3. Why does Ethereum use keccak256, not SHA-3?
keccak256 uses the original Keccak padding (0x01), while this tool's SHA3-256 uses the NIST FIPS 202 padding (0x06). Same structural algorithm, different outputs. Never use this tool to replicate Ethereum address derivation or EVM keccak256 — you will get wrong results. What is the sponge construction?
Should I use SHA-3 instead of SHA-2?
Is SHA-3 faster than SHA-256?
How long is a SHA-3 hash from this tool?
Is SHA-3 quantum-resistant?
Is my data sent to a server when I use this tool?
js-sha3 script is fetched once from a CDN, ~10 KB), all hashing runs entirely in your browser in JavaScript. Open DevTools → Network tab while hashing text — you will see zero outgoing requests carrying your input data. Unlike the SHA-2 tools on this site (which use the browser-built-in Web Crypto API), SHA-3 is not yet in the Web Crypto spec, so a JavaScript library is required. The library download is the only network request; your text never leaves the page. See also: the SHA-256 generator and MD5 generator use no external library at all. What was the NIST SHA-3 competition?
Is SHA-3 vulnerable to length-extension attacks?
Related Tools
View all tools →JWT Decoder
Security Tools
Decode JWT tokens online with our free JWT decoder. Instantly inspect header, payload, signature, expiration, algorithm, and claims. 100% browser-based — your token never leaves your device. No signup, no tracking.
MD5 Hash Generator & File Checksum Tool
Security Tools
Generate MD5, SHA-256, SHA-1 & SHA-512 hashes online for free. Hash text or files in your browser, verify checksums and copy results. No signup needed.
Random Password Generator — Customizable, Strong & Secure
Security Tools
Generate strong random passwords instantly — free, 100% in your browser. Customize length & characters, batch up to 50 with entropy analysis.
SHA-1 Hash Generator (160-bit Legacy)
Security Tools
Generate SHA-1 hashes in your browser — 40-character hex output, no upload. Legacy tool for Git fingerprints, old certificate checks, and migration audits. Data never leaves your device.
SHA-256 Hash Generator & Checksum Tool
Security Tools
Generate SHA-256 hashes online for free. Hash text or files in your browser, verify checksums, and copy 64-character hex output. No signup; data never leaves the page.
SHA-384 Hash Generator (TLS Suite B Hash)
Security Tools
Generate SHA-384 hashes online — 96-character hex output, length-extension immune, NSA Suite B compliant. Paired with AES-256-GCM in TLS. All hashing runs in your browser via Web Crypto API.