Create Keccak-256 hashes, a variant of the SHA-3 algorithm providing 256-bit hash output.
Supported Tools:
Generate Keccak-256 hashes online. Keccak-256 is the original (pre-FIPS) Keccak hash used by Ethereum for addresses, function selectors, and storage keys.
Keccak-256 is the 256-bit output of the original Keccak submission that won the SHA-3 competition, before NIST added a domain-separation suffix to create SHA3-256. It is the hash Ethereum adopted and still uses everywhere: deriving addresses from public keys, computing 4-byte function selectors, and hashing storage slots. Because of the padding difference, Keccak-256 and SHA3-256 produce different digests for the same input, which is a common source of confusion for blockchain developers.
Input:
abc
Output:
4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
Is Keccak-256 the same as SHA3-256?
No, and this trips up many developers. Keccak-256 omits the NIST domain suffix that SHA3-256 adds, so the two give different hashes. Ethereum uses Keccak-256, not SHA3-256.
Why does Ethereum use Keccak-256?
Ethereum implemented Keccak before FIPS 202 was finalized, so it locked in the original Keccak padding and has kept it for compatibility ever since.
How do I get an Ethereum function selector?
Take the Keccak-256 hash of the function signature (e.g. transfer(address,uint256)) and use the first 4 bytes.