Keccak-256 Hash Generator
Generate Keccak-256 hashes online. The original pre-NIST Keccak algorithm used by Ethereum (keccak256) for address derivation and smart contracts. NOT the same as SHA3-256. Supports HMAC-Keccak-256.
Share Link
Related Hash Tools
Frequently Asked Questions
What is Keccak-256?
How is Ethereum's Keccak-256 different from SHA3-256?
What does Ethereum use Keccak-256 for?
Can I use this tool to verify Ethereum addresses?
About Keccak-256 Hash Generator
Keccak-256 is the original 256-bit Keccak hash function, designed by Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche. It won the NIST hash competition in 2012. Ethereum adopted Keccak-256 before NIST finalized the SHA-3 standard, which is why Ethereum's hash (Keccak-256) differs from the standardized SHA3-256 (FIPS 202).
Keccak-256 in Ethereum
Keccak-256 is ubiquitous in Ethereum. Every Ethereum address is derived by hashing a 64-byte public key with Keccak-256 and taking the last 20 bytes. The Solidity keccak256() builtin, the EVM KECCAK256 (SHA3) opcode, and the web3.js/ethers.js utils.keccak256() function all use the original Keccak-256, not SHA3-256. This is a frequent source of bugs when developers accidentally use a SHA3-256 library in Ethereum contexts.
Keccak-256 vs SHA3-256
The only difference between Keccak-256 and SHA3-256 is the padding appended before the Keccak-f permutation. Keccak-256 uses 0x01; SHA3-256 uses 0x06 (NIST added 2 domain separation bits). For the empty string, Keccak-256 produces c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 while SHA3-256 produces a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a.
Security Properties
Keccak-256 provides 128-bit collision resistance and 256-bit preimage resistance. The sponge construction makes it immune to length-extension attacks. No practical attacks on Keccak-256 are known.