Skip to content
AgileLogics

SHA3-256 Generator

Computes the SHA3-256 hash of your text, using a hand-rolled Keccak-f[1600] implementation (SHA-3 is absent from Web Crypto), verified against known test vectors.

How it works

Type or paste text into the input panel and click Generate.

What does a SHA3-256 hash generator do?

A SHA3-256 generator hashes your text with the 256-bit SHA-3 function from FIPS 202 and returns a 64-character hex digest. It's the SHA-3 counterpart of SHA-256: same output size, same security targets, but built on the Keccak sponge, which makes it immune to length-extension attacks. Encoding is UTF-8, output is lowercase.

Paste text, click Generate, copy the result. Nothing is trimmed, so a trailing newline from a copied line changes the digest.

SHA3-256 vs Keccak-256

If you work anywhere near Ethereum, this is the section that matters. Ethereum adopted Keccak before NIST finished standardizing it. The final standard changed one detail: before padding, FIPS 202 appends two extra bits (01) to separate the SHA3 hash functions from the SHAKE functions. The permutation is identical, but the padded input differs, so every output differs.

Input SHA3-256 (this tool) Keccak-256 (Ethereum)
abc 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
hello world 644bcc7e564373040999aac89e7622f3ca71fba1d972fd94a31c3bfbf24e3938 47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad

In the code the difference is a single byte: SHA-3 pads with 0x06, original Keccak with 0x01. Solidity's keccak256(), Ethereum addresses and function selectors all use the Keccak column. If you're checking those, this tool will give you a "wrong" answer; that's expected. The SHA3-256 column is what you get from OpenSSL's -sha3-256, Python's hashlib.sha3_256, Node's createHash('sha3-256') and PHP's hash('sha3-256', ...).

The SHA3-256 value for abc is also NIST's published example value, so it doubles as a quick self-test for any implementation.

Verify a value someone sent you

  1. Make sure you have the exact text that was hashed, including case, spacing and line endings.
  2. Paste it here and click Generate.
  3. Compare against the expected digest, ignoring letter case.
  4. If it doesn't match, run it through OpenSSL to rule out a whitespace problem in the browser copy:
printf '%s' 'abc' | openssl dgst -sha3-256
  1. If OpenSSL matches you but not the sender, they may be using Keccak-256 or a different text encoding.

Why choose SHA3-256 at all?

SHA-256 is still unbroken, and NIST hasn't deprecated it. SHA3-256 is worth reaching for in a few situations:

  • Designs that would otherwise need HMAC for safety. Because the sponge never outputs its 512-bit capacity, a digest can't be extended the way SHA-256's can. For a standardized keyed MAC on SHA-3, NIST defines KMAC in SP 800-185, the SHA-3 family's answer to HMAC.
  • Post-quantum standards. ML-KEM (FIPS 203), NIST's lattice-based key-encapsulation standard, uses SHA3-256 as its hash function H, alongside SHA3-512 and the SHAKE functions. Implementers checking intermediate values need exactly this function.
  • Diversity. Systems that already hash with SHA-2 sometimes use SHA-3 for a second, independent check, so a single algorithmic break doesn't defeat both.

On the cost side, there's no SHA-3 in the browser's Web Crypto API and fewer CPUs accelerate it, so SHA-256 is usually faster in practice.

Parameters at a glance

SHA3-256 uses a 1,088-bit rate (136 bytes absorbed per Keccak-f[1600] permutation) and a 512-bit capacity, giving 128-bit collision and 256-bit preimage resistance. SHAKE256 runs on exactly the same rate and capacity; it only differs in its padding bits and in letting you choose the output length. Try the SHAKE256 generator to see how that changes the output.

For the SHA-2 equivalent, use the SHA-256 hash generator. If you need SHA-3 at a higher security level, the SHA3-512 generator doubles the output. To authenticate a message with a shared secret today, the HMAC generator works with SHA-256 and any server that supports it.

Last updated

Frequently asked questions

Is SHA3-256 the same as Keccak-256?
No. Keccak-256, used by Ethereum and Solidity's keccak256(), is the original competition version. FIPS 202 added two domain-separation bits to the padding, so the standardized SHA3-256 gives a different result. For abc, SHA3-256 is 3a985da7... and Keccak-256 is 4e03657a. This tool computes SHA3-256 only.
Is SHA3-256 more secure than SHA-256?
Both offer 128-bit collision resistance and 256-bit preimage resistance, and neither has a known practical attack. SHA3-256 adds immunity to length-extension attacks and a completely different internal design. SHA-256 has wider support and hardware acceleration. Pick whichever your protocol specifies.
Why does this tool show nothing for empty input?
It skips empty input rather than hashing zero bytes. The SHA3-256 of the empty string is a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a.
Is my text sent to a server?
No. SHA-3 isn't available in the browser's Web Crypto API, so the page runs its own Keccak implementation in JavaScript, entirely on your device.
Can I use SHA3-256 to store passwords?
Not by itself. A fast hash lets attackers test guesses quickly. Use a password hashing function such as Argon2id, scrypt or bcrypt, as the OWASP Password Storage Cheat Sheet advises.