Compute a Keccak-256 digest

Compute Ethereum-compatible Keccak-256 from exact input bytes.

freeworks offlinenothing uploaded
ToolKeccak-256 Hash
Input
Output
Put this on your own site

The frame below runs the same code as this page, in the reader's own browser. Nothing is sent to us, and nothing is sent to you.

Pick a dark background and the text and panels follow it, so the frame stays readable on a dark page.

Preview

How it works

Keccak-256 absorbs input into a 1600-bit sponge with Keccak-f[1600] permutation rounds, then squeezes 256 output bits using Keccak padding. It differs from standardized SHA3-256 in domain-separation padding, so the two names are not interchangeable.

  • Ethereum uses the original padding for address, transaction, and storage hashes.

Worked example

Hash of an empty string
The well-known keccak256 constant for empty input
Input
											
										
Output
												Hash hex: c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
											

When to use this

Ethereum addresses, transaction hashes, and Solidity storage slots use this digest.

Edge cases

  • SHA3-256 and Keccak-256 produce different digests for the same bytes.
  • Hex text must be decoded before hashing when it represents raw bytes.
  • Changing UTF-8 encoding changes the hash input.

References