Hashed with shared TypeScript logic using original Keccak (0x01) padding.
- • Keccak won the SHA-3 competition in 2012
- • Ethereum uses original Keccak-256
- • SHA3 ≠ Keccak (different padding)
- • Both use sponge construction
- • Quantum-resistant properties
keccak256(abi.encodePacked(data))web3.utils.keccak256(data)from Crypto.Hash import keccakgolang.org/x/crypto/sha3{{ digest }}
Original Keccak uses 0x01 multi-rate padding. NIST SHA-3 (FIPS 202) appends the 01 domain-separation suffix giving 0x06. The two functions produce different digests for the same input. Ethereum/Solidity use original Keccak-256.
ℹ️ About Keccak Hash Information
Keccak is the sponge-based cryptographic hash family designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche. This tool generates the original Keccak-224, Keccak-256, Keccak-384, and Keccak-512 digests, including the Keccak-256 variant commonly used by Ethereum tooling. The Keccak team publishes a readable Keccak specification summary, while NIST standardized the SHA-3 family in FIPS 202.
Keccak vs SHA-3: Keccak and SHA3-256 are closely related but not interchangeable. Original Keccak uses the pre-standard delimited suffix
often represented as 0x01; SHA-3 uses the FIPS 202 domain-separation suffix represented as 0x06 for byte-aligned input.
The internal sponge construction and Keccak-f[1600] permutation are shared, but the suffix change means the same input produces different hashes.
- Empty string with Keccak-256:
c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 - Empty string with SHA3-256:
a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a - Text input
hellowith Keccak-256:1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8
Common uses:
- Ethereum and EVM workflows: Solidity exposes
keccak256(bytes memory)as a 32-byte hash function in the official Solidity documentation. - Function selectors: the first four bytes of the Keccak-256 hash of a canonical function signature identify many contract calls.
- Addresses and identifiers: Ethereum address derivation, event topics, storage keys, and typed-data workflows commonly depend on Keccak-256.
- Compatibility checks: use original Keccak when matching existing blockchain, pre-FIPS SHA-3, or library outputs that explicitly say Keccak.
Strength ratings:
- Keccak-224: 224-bit output with about 112-bit collision strength.
- Keccak-256: 256-bit output with about 128-bit collision strength; the default Ethereum-compatible choice.
- Keccak-384: 384-bit output with about 192-bit collision strength for higher-assurance protocols.
- Keccak-512: 512-bit output with about 256-bit collision strength and larger digests.
Limitations:
- Keccak is a hash, not encryption; the digest cannot recover the original input.
- Use SHA3-224/256/384/512 when a standard, FIPS 202 SHA-3 digest is required.
- Use HMAC or a signature scheme for authenticity; a plain Keccak hash has no secret key.
- Use Argon2, bcrypt, scrypt, or PBKDF2 for password storage instead of a fast general-purpose hash.
- Match byte encoding exactly. Text, hex bytes, and Base64-decoded bytes can all produce different digests for visually similar data.
The browser interface computes Keccak locally after the page logic loads. If you use the public API example, the submitted input is processed server-side, so avoid sending private keys, seeds, passwords, or unreleased contract data.
API Usage Example:
POST /api/tools/crypto/keccak-generator
Content-Type: application/json
{
"input": "Hello, World!",
"variant": "keccak-256",
"inputFormat": "text"
}