Keccak-256 Hash Generator

Compute the original Keccak hash (Keccak-256 or Keccak-512) of any text — the exact algorithm Ethereum uses, which differs from FIPS SHA-3. Runs entirely in your browser, no server, no sign-up.

Keccak digest

About this tool

This Keccak hash generator computes the original Keccak digest of any text right in your browser. The hashing runs locally in WebAssembly — your input is never uploaded to a server, which makes it safe for keys, addresses, and other sensitive strings.

A hash is a fixed-length fingerprint of its input. The same text always produces the same digest, but the digest cannot be reversed back into the original — so hashes are ideal for verifying that data has not changed, fingerprinting content, and deriving identifiers.

Keccak vs. SHA-3 — they are not the same

This tool implements the original Keccak algorithm (the one submitted to the NIST hash competition), which uses 0x01 multi-rate padding. When Keccak was standardized as FIPS-202 SHA-3, the padding was changed to 0x06. As a result, Keccak-256 and SHA3-256 produce completely different digests for the same input — they are not interchangeable.

Where Keccak-256 is used

Keccak-256 is the workhorse hash of Ethereum and EVM-compatible chains:

Supported variants

Options

Notes

FAQ

Why is my digest different from a SHA3-256 tool's output?

Because Keccak-256 ≠ SHA3-256. The original Keccak uses 0x01 multi-rate padding; when NIST standardized it as FIPS-202 SHA-3 the padding changed to 0x06, so the two algorithms give completely different digests for the same input. This tool is the original Keccak — the one Ethereum uses. For the NIST SHA-3 variants, use the Text Hash Generator.

How do I hash raw bytes (calldata, a key) instead of a string?

Set Interpret input as to hex or base64. In hex mode a leading 0x is accepted, so you can paste EVM calldata like 0xa9059cbb… directly and the tool hashes the decoded bytes, not the literal characters.

How do I compute an Ethereum function selector?

Hash the canonical signature — no spaces, no parameter names — with Keccak-256 and take the first 4 bytes of the digest. For example, keccak256("transfer(address,uint256)") starts with a9059cbb, the familiar ERC-20 transfer selector.

Which variant should I pick, Keccak-256 or Keccak-512?

Keccak-256 (the default, 32-byte digest) is what Ethereum and the EVM ecosystem use everywhere — addresses, storage keys, the KECCAK256 opcode. Keccak-512 gives a 64-byte digest; choose it only when a spec explicitly asks for the 512-bit variant.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool keccak-hash "Hello, World!"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/keccak-hash/?text=Hello%2C%20World%21&algorithm=keccak-256&input_encoding=text&output_format=hex&uppercase=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.