Skip to main content
100% client-side · ISO/IEC 10118-3

Whirlpool Hash Generator

Generate 512-bit Whirlpool hashes from text or files — computed entirely in your browser with a pure-JavaScript implementation of the Whirlpool specification. No uploads, no accounts, no tracking. Hash live as you type, batch-process many inputs, verify checksums, and self-test against the official test vectors.

Input text0 chars · 0 bytes UTF-8
Whirlpool digest (128 hex chars = 512 bits)
—

What is Whirlpool?

Whirlpool is a cryptographic hash function designed by Vincent Rijmen (co-creator of AES) and Paulo S. L. M. Barreto, first described in 2000 and named after the Whirlpool Galaxy (M51). It digests messages of any length into a fixed 512-bit (64-byte) fingerprint, conventionally written as 128 hexadecimal characters. It was selected for the NESSIE portfolio of cryptographic primitives and standardized as part of ISO/IEC 10118-3:2004. The authors released it patent-free: it may be used free of charge for any purpose.

Version history

VersionYearWhat changed
Whirlpool-02000Original specification.
Whirlpool-T2001S-box replaced: from a randomly generated box to one with better cryptographic properties and easier hardware implementation.
Whirlpool (final)2003Diffusion matrix flaw fixed — constants changed from (1,1,3,1,5,8,9,5) to (1,1,4,1,8,5,2,9). This is the ISO-standardized version, and the one this tool implements.

How Whirlpool works

Whirlpool is a Merkle–Damgård construction using the Miyaguchi–Preneel scheme: each 512-bit message block m updates the chaining value H as H ← W[H](m) ⊕ H ⊕ m, where W is a dedicated 512-bit block cipher. Messages are padded with a 1 bit, zeroes, and a 256-bit big-endian bit-length before processing.

The cipher W operates on an 8×8 byte state matrix over 10 rounds. Each round applies four transforms:

  • SubBytes — every byte passes through a fixed 8-bit S-box (built from three 4-bit mini-boxes).
  • ShiftColumns — column j is cyclically shifted downward by j positions (the transpose of AES's ShiftRows).
  • MixRows — each row is multiplied by an 8×8 circulant matrix cir(01,01,04,01,08,05,02,09) over GF(2⁸) with polynomial x⁸+x⁴+x³+x²+1.
  • AddRoundKey — XOR with a round key derived by running the key schedule (the same round function, fed with round constants drawn from the S-box).
Why not Web Crypto? The Web Crypto API only exposes SHA-1, SHA-256, SHA-384, and SHA-512 — Whirlpool is not available natively in any browser. This page therefore ships a from-specification pure-JavaScript implementation (a few kilobytes), verified against the official test vectors below.

Whirlpool vs other hash functions

AlgorithmDigestStructureStatus
Whirlpool512-bitMiyaguchi–Preneel over AES-like 10-round cipherNo practical attack on full 10 rounds; ISO standard; niche adoption (VeraCrypt, RHash)
SHA-512512-bitMerkle–Damgård, Davies–Meyer (SHA-2)Industry default 512-bit hash; hardware acceleration; fastest in software
SHA3-512512-bitSponge (Keccak)Modern NIST standard; different design lineage from SHA-2
MD5128-bitMerkle–DamgårdBroken — collisions are trivial; use only for non-security checksums

Choose SHA-512 or SHA3-512 for new systems. Choose Whirlpool when you must interoperate with existing Whirlpool checksums, satisfy ISO/IEC 10118-3 requirements, or want a 512-bit digest outside the SHA family.

Official Whirlpool test vectors

Reference hashes recomputed from the verified implementation (the quick brown fox value is the officially published vector):

Whirlpool("") =
19fa61d75522a4669b44e39c1d2e1726c530232130d407f89afee0964997f7a73e83be698b288febcf88e3e03c4f0757ea8964e59b63d93708b138cc42a66eb3
Whirlpool("abc") =
4e2448a4c6f486bb16b6562c73b4020bf3043e3a731bce721ae1b303d97e6d4c7181eebdb6c57e277d0e34957114cbd6c797fc9d95d8b582d225292076d4eef5
Whirlpool("Allstate") =
248c2b8d67dd270de23b91417feafee671a4a925de9b16e66ff442935f3ea5e27ffcd1609a15733c0554784cb1f427e969b4b1da1b9e6e5056af2867dfa97ba9
Whirlpool("The quick brown fox jumps over the lazy dog") =
b97de512e91e3828b40d2b0fdce9ceb3c4a71f9bea8d88e75c4fa854df36725fd2b52eb6544edcacd6f8beddfea403cb55ae31f03ad62a5ef54e42ee82c3fb35

Frequently asked questions

What is the Whirlpool hash function?
Whirlpool is a cryptographic hash function that turns any input into a fixed 512-bit (64-byte) digest, usually written as 128 hexadecimal characters. It was designed by Vincent Rijmen (co-creator of AES) and Paulo S. L. M. Barreto, first described in 2000, and later standardized in ISO/IEC 10118-3:2004 and selected for the NESSIE portfolio. It is named after the Whirlpool Galaxy (M51).
Whirlpool vs SHA-512 — what is the difference?
Both produce 512-bit digests, but their internals differ completely. Whirlpool is a Miyaguchi-Preneel construction built on a dedicated 512-bit AES-like block cipher with 10 rounds; SHA-512 is a Merkle-Damgard Davies-Meyer design from the SHA-2 family. SHA-512 is far more widely adopted, better supported by libraries and hardware, and faster in software. Whirlpool is chosen for legacy interoperability, ISO/IEC 10118-3 compliance, or when an independent alternative to the SHA family is wanted.
Is Whirlpool still secure?
No practical attack exists against the full 10-round Whirlpool. The best published cryptanalysis (a 2009 rebound attack) only reaches 4.5 rounds for full collisions, far from the full 10. Still, Whirlpool is not recommended for brand-new cryptographic designs — prefer SHA-256, SHA-3, or BLAKE3. And never use any fast hash (Whirlpool included) to store passwords; use bcrypt, scrypt, or Argon2, which are deliberately slow and salted.
Why is there no Whirlpool in the Web Crypto API?
The Web Crypto API only standardizes a small set of digests (SHA-1, SHA-256, SHA-384, SHA-512). Whirlpool was never added, so browsers cannot compute it natively. This tool ships a pure-JavaScript implementation of the full Whirlpool specification (10 rounds, official S-box and diffusion matrix) that runs entirely in your browser — and the Test vectors tab lets you verify it against the official published vectors yourself.
What are Whirlpool-0, Whirlpool-T, and Whirlpool?
Three revisions of the algorithm. Whirlpool-0 (2000) was the original. Whirlpool-T (2001) replaced the randomly generated S-box with one that has better cryptographic properties and is easier to implement in hardware. The final Whirlpool (2003) fixed a flaw in the diffusion matrix, changing its constants from (1,1,3,1,5,8,9,5) to (1,1,4,1,8,5,2,9). This tool implements the final 2003 revision — the version in the ISO standard.
Can I hash a file with Whirlpool?
Yes — use the File tab above. Files are read in chunks and hashed with a streaming implementation, so even very large files work without loading everything into memory. Nothing is uploaded: the file never leaves your device. Compare the result with the publisher's checksum in the Verify tab to confirm integrity.
Is my text or file sent to a server?
No. Everything runs 100% in your browser with JavaScript — your input is never sent to any server, stored, or logged. Open DevTools, watch the Network tab while hashing, and confirm zero requests. That makes the tool safe for sensitive documents and private data.
How do I verify a Whirlpool checksum?
Hash your text or file, then open the Verify tab and paste the expected 128-character hex digest. The tool compares them character by character (ignoring case and whitespace) and reports MATCH or MISMATCH. A single changed byte in the input produces a completely different digest, so an exact match confirms integrity.

Free tool by NRTechStudio