piapia123
en

SHA-3 / SHAKE / Keccak Hash Calculator

Encoding

Everything runs locally in your browser — nothing is uploaded

Input
Drop a file here to load its contents
Output

Three hash families built on the same permutation, covered in one place. They share a single implementation and differ only in a padding byte — and their outputs are entirely unrelated. That is the trap: SHA3-256 and Keccak-256 are not the same thing. When NIST finalised SHA-3 in 2015 it changed the padding from 0x01 to 0x06, and that one byte makes the two produce completely different digests. Ethereum has used original Keccak-256 from day one — contract addresses, transaction hashes, event topics and ERC-20 method selectors are all built on it, so checking them against SHA3-256 gives you something perfectly well-formed that nobody recognises. Each family has its own place; the dropdown is grouped accordingly.

Features

  • Ten variants: SHA3-224/256/384/512, SHAKE128/256 and Keccak-224/256/384/512
  • SHAKE output length is configurable (1–512 bytes); the others are fixed by the standard
  • Original Keccak listed separately from SHA-3 — Ethereum uses the former
  • Output as hexadecimal (upper or lower case) or Base64
  • Non-ASCII text hashed as UTF-8 bytes, matching openssl and Ethereum tooling
  • Implemented here, so it does not depend on which SHA-3 variants the browser offers

How to use

  1. Paste your text into the input box
  2. Choose the variant (pick Keccak-256 for anything Ethereum-related)
  3. Set the output length if you chose a SHAKE variant
  4. Press Ctrl/⌘ + Enter or click Run, then copy the result

FAQ

What is the difference between SHA3-256 and Keccak-256?
One padding byte, and completely different results. Both use the same Keccak-f[1600] permutation and the same 136-byte block size; the only difference is the byte appended at the end of absorption. Original Keccak appends 0x01, NIST-finalised SHA-3 appends 0x06. For the empty string, Keccak-256 gives c5d24601… while SHA3-256 gives a7ffc6f8… — both well-formed, not one byte in common. Ethereum uses original Keccak throughout, so you must select Keccak-256 when verifying contract addresses or transaction hashes.
What is SHAKE, and why can its output length vary?
SHAKE is an extendable-output function (XOF) — it can squeeze out any amount of output on demand, rather than a fixed 32 bytes like SHA-256. This is not truncation; it falls out of the sponge construction, which permutes again each time a block is squeezed and can keep going indefinitely. It suits cases that need variable-length output, such as deriving several keys from one seed, and it is used heavily in KMAC and post-quantum signatures. The cap here is 512 bytes, which is far beyond practical use.
Which of the ten variants should I pick?
By purpose. For anything Ethereum or blockchain related, always Keccak-256 — never SHA3-256. For new designs following NIST standards, pick SHA3-224/256/384/512 by the length you need, with 256 the most common. For variable-length output such as key derivation or random-number expansion, pick SHAKE128 (faster) or SHAKE256 (more security margin). Keccak-224/384/512 come up mainly when reproducing older systems or comparing implementations.
Is SHA-3 more secure than SHA-256, and should I migrate?
There is no need today. SHA-256 has no practical attack, and SHA-3 matters for a different reason: it is structurally unrelated. SHA-2 builds on Merkle–Damgård, SHA-3 on a sponge, so their weaknesses do not overlap. SHA-3 is therefore insurance against a future break in SHA-2 rather than a stronger choice right now. Either is fine for new systems; SHA-256 has better compatibility and broader hardware support.

Related tools