Hashing
SHA3-256 hash generator
SHA3-256 hashes any text you paste into the 64-character digest defined by NIST's FIPS 202 standard. It is not Keccak-256, the pre-standard variant Ethereum uses: the two differ in padding and give different digests for the same input. Output is lowercase hex, computed as you type, and matches openssl dgst -sha3-256 and Python's hashlib.sha3_256.
How to use SHA3-256
- Open SHA3-256 in the Toolbox101 app.
- Paste or type the text into the
Inputbox. - Read the 64-character digest in the
Outputbox; it updates as you type. - Click
Copyto put it on your clipboard.
Worked example
SHA3-256 returns the output below for this input.
Input
The quick brown fox jumps over the lazy dogOutput
69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04Check it yourself: open SHA3-256 and enter the same input.
Frequently asked questions
Is SHA3-256 the same as Keccak-256?
No. Both are Keccak sponge instances, but NIST changed the padding when it finalised SHA-3 (0x06 domain bits instead of Keccak's 0x01), so the digests differ for every input. For the empty string SHA3-256 gives a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a and Keccak-256 gives c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470. Ethereum uses Keccak-256, so use the Keccak-256 tool for that.
Why does my result differ from another SHA-3 site?
Check which variant the other tool computes. Some older JavaScript libraries implement the pre-standard Keccak and still call it SHA-3. This tool follows FIPS 202: the empty string must give a7ffc6f8…434a, and if the other site shows c5d24601…a470 it is computing Keccak-256.
Why is the SHA3-256 digest 64 characters?
The digest is 256 bits, which is 32 bytes, and each byte is written as two hex characters, so the output is always 64 characters whatever the input length.
When would I pick SHA3-256 over SHA-256?
Mostly when a spec asks for SHA-3. SHA-256 is the default almost everywhere and nothing about it is broken. SHA3-256 has a different internal design (a sponge rather than Merkle–Damgård), which also means it is not open to length-extension attacks, so it is the pick when you want a structurally different second hash.