What is a SHA3-512 hash?
SHA3-512 is the largest fixed-output function in the SHA-3 standard, FIPS 202. It maps any input to a 512-bit digest, displayed as 128 hexadecimal characters, and offers 256-bit collision resistance. This generator hashes your text as UTF-8 and prints the result in lowercase hex when you click Generate.
It belongs to the same family as SHA3-224, SHA3-256 and SHA3-384, and they all run the same Keccak-f[1600] permutation. What changes between them is how the 1,600-bit state is divided.
The SHA-3 family by the numbers
Every SHA-3 function sets its capacity to twice the output length. The rest of the state is the rate, the number of input bytes absorbed per permutation. Security strengths are from FIPS 202's table of security properties.
| Function | Output | Capacity | Rate (bytes per permutation) | Collision strength | Preimage strength |
|---|---|---|---|---|---|
| SHA3-224 | 224 bits | 448 bits | 144 | 112 bits | 224 bits |
| SHA3-256 | 256 bits | 512 bits | 136 | 128 bits | 256 bits |
| SHA3-384 | 384 bits | 768 bits | 104 | 192 bits | 384 bits |
| SHA3-512 | 512 bits | 1,024 bits | 72 | 256 bits | 512 bits |
| SHAKE128 | any length | 256 bits | 168 | up to 128 bits | up to 128 bits |
| SHAKE256 | any length | 512 bits | 136 | up to 256 bits | up to 256 bits |
The bottom two rows explain a frequent question: SHAKE256 with 64 bytes of output is not a substitute for SHA3-512. It uses a smaller capacity, so it tops out at 256-bit preimage strength, and its padding bits differ, so the bytes are different anyway.
SHA3-512 sits at the far end. It has the largest safety margin and the smallest rate: 72 bytes per permutation versus SHA3-256's 136. That's why it's the slowest SHA-3 hash per byte.
Worked example
The standard test input abc gives:
b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0
That's the NIST example value for SHA3-512, and this page returns it exactly. For comparison, SHA-512 of the same input begins ddaf35a193617aba, and SHAKE256 of abc stretched to 64 bytes begins 483366601360a877. Three 512-bit outputs, three unrelated values.
Reproducing a hash elsewhere
- Hash the text here and copy the 128-character result.
- In a terminal, run
printf '%s' 'your text' | openssl dgst -sha3-512(OpenSSL 1.1.1 or later). - In code, use
hashlib.sha3_512(text.encode()).hexdigest()in Python,crypto.createHash('sha3-512')in Node.js, orhash('sha3-512', $text)in PHP. - If results differ, check for a trailing newline (common with
echo), a different text encoding, or a library that calls Keccak-512 "SHA3" while using the older padding.
Where SHA3-512 is used
The clearest modern example is ML-KEM, NIST's post-quantum key-encapsulation standard. FIPS 203 uses SHA3-512 as its function G, which derives a pair of 32-byte values from its input during key generation and encapsulation. Anyone writing or debugging an ML-KEM implementation needs a reliable SHA3-512 to check intermediate values against.
Outside that, SHA3-512 appears when a system wants SHA-3 at the 256-bit security tier, for example to pair with AES-256 under a uniform policy. For general file checksums and content addressing, a 256-bit hash is plenty and shorter to store.
What it isn't for
Being large doesn't make a hash suitable for passwords. SHA3-512 is fast, so attackers can test guesses quickly; use Argon2id, scrypt or bcrypt as the OWASP Password Storage Cheat Sheet recommends. And a bare hash proves integrity only if the expected value reaches you through a trusted channel; for authentication between two parties, use the HMAC generator.
To compare with the SHA-2 version, the hash generator computes SHA-512 alongside SHA-256. For a smaller SHA-3 digest, try the SHA3-384 generator, or the SHAKE256 generator when you need an output length that isn't fixed.
Last updated