Random SHA3 Hashes Generator
Generate cryptographically random SHA-3 hashes (224, 256, 384, 512-bit) using the Keccak sponge construction. Bulk generate, copy, and export.
About
SHA-3 (Secure Hash Algorithm 3) is the latest member of the Secure Hash Algorithm family, standardized by NIST in FIPS 202 (2015). Unlike SHA-2, which uses a Merkle - Damgรฅrd construction, SHA-3 is built on the Keccak sponge function with a permutation width of 1600 bits and 24 rounds. This architectural difference provides resilience against length-extension attacks without requiring HMAC wrappers. Using this generator incorrectly - for instance, confusing SHA-3-256 with SHAKE256 or assuming SHA-3 output is interchangeable with SHA-2 - can break protocol compliance in TLS certificate pinning, blockchain address derivation, or digital forensics chain-of-custody logs.
This tool generates hashes from cryptographically secure random input via crypto.getRandomValues(), then applies the full Keccak-f[1600] permutation. Each hash is computed from 32 bytes of fresh entropy. The implementation covers all four SHA-3 fixed-length variants: 224, 256, 384, and 512 bits. Note: this tool does not implement SHAKE128/SHAKE256 (extendable-output functions), which use a different domain separation byte (0x1F vs 0x06).
Formulas
SHA-3 is based on the Keccak sponge construction. The state is a 5 ร 5 matrix of 64-bit lanes, totaling 1600 bits. The permutation Keccak-f[1600] applies 24 rounds of five step mappings.
The rate r determines how many bits are absorbed per block. For SHA-3-d:
Each round i โ {0, ..., 23} applies:
Where ฮธ computes column parities and XORs them with adjacent columns. ฯ rotates each lane by a fixed offset. ฯ permutes lane positions. ฯ is the only non-linear step: A[x] = A[x] โ (ยฌA[x+1] โง A[x+2]). ฮน XORs a round constant into lane [0,0]. After absorbing and permuting, the output is squeezed from the first d bits of the state.
Where b = state width (1600 bits), r = rate (bits absorbed per block), c = capacity (security parameter), d = output digest length in bits, A[x] = state lane at position x.
Reference Data
| Variant | Output (bits) | Output (hex chars) | Rate r (bits) | Capacity c (bits) | Security (bits) | Domain Byte | Block Size (bytes) |
|---|---|---|---|---|---|---|---|
| SHA-3-224 | 224 | 56 | 1152 | 448 | 112 | 0x06 | 144 |
| SHA-3-256 | 256 | 64 | 1088 | 512 | 128 | 0x06 | 136 |
| SHA-3-384 | 384 | 96 | 832 | 768 | 192 | 0x06 | 104 |
| SHA-3-512 | 512 | 128 | 576 | 1024 | 256 | 0x06 | 72 |
| SHAKE128 | Variable | Variable | 1344 | 256 | min(d/2, 128) | 0x1F | 168 |
| SHAKE256 | Variable | Variable | 1088 | 512 | min(d/2, 256) | 0x1F | 136 |
| SHA-2-256 | 256 | 64 | N/A (MD) | N/A (MD) | 128 | N/A | 64 |
| SHA-2-512 | 512 | 128 | N/A (MD) | N/A (MD) | 256 | N/A | 128 |
| MD5 (broken) | 128 | 32 | N/A (MD) | N/A (MD) | 0 (collisions) | N/A | 64 |
| BLAKE2b-256 | 256 | 64 | N/A (HAIFA) | N/A | 128 | N/A | 128 |
| BLAKE3 | 256 | 64 | N/A (Merkle) | N/A | 128 | N/A | 64 |
| Keccak-256 (Ethereum) | 256 | 64 | 1088 | 512 | 128 | 0x01 | 136 |