Keccak-256 Hash Generator
Compute Keccak-256 — what Ethereum means by "keccak256", and not the same as SHA3-256 despite the size.
Input
Keccak-256
Enter something above to see the result.
Keccak is not SHA-3
Keccak won the SHA-3 competition, but NIST changed the domain-separation padding before publishing FIPS 202 — from 0x01 to 0x06. Everything else is identical, and that one byte makes every digest different.
Ethereum had already shipped with the original padding, so `keccak256` in Solidity means Keccak-256, not SHA3-256. Hashing the same input with the wrong one is a silent failure: both give a plausible 32-byte value.
keccak256("") = c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
sha3-256("") = a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434aFrequently asked questions
Which one does my library use?
If it is an Ethereum library, almost certainly the original Keccak. If it is a general crypto library and the function is called sha3_256, it is usually FIPS 202. Compare the digest of the empty string against the two values above.
Is Keccak less secure than SHA-3?
No. The padding change was about domain separation, not a weakness. Both have the same security level.