Calculate Whirlpool Hash of a String
Calculate the Whirlpool cryptographic hash (512-bit) of any string online. Supports UTF-8, ASCII, and hex input with instant results.
About
Whirlpool is a cryptographic hash function standardized under ISO/IEC 10118-3. It produces a 512-bit (128 hex character) digest from arbitrary-length input. The algorithm operates on an 8×8 state matrix over GF(28) using a Miyaguchi-Preneel compression scheme with 10 rounds of substitution, column shifting, row mixing, and key addition. An incorrect hash comparison during file integrity verification means you cannot detect tampering or corruption. This tool computes the full Whirlpool digest client-side. No data leaves your browser. The implementation follows the final Whirlpool specification (version 3.0, 2003) with the corrected S-box and updated round constants.
Formulas
Whirlpool processes message M in 512-bit blocks. After Merkle-Damgård padding, each block mi is compressed with the previous hash state Hi−1 via the Miyaguchi-Preneel scheme:
where E(K, P) is a block cipher operating on an 8×8 byte state matrix. Each of the 10 rounds applies four transformations:
SubBytes applies an S-box Sb built from exponentiation and affine transforms in GF(28) with irreducible polynomial p(x) = x8 + x4 + x3 + x2 + 1. ShiftColumns cyclically shifts column j by j positions. MixRows multiplies each row by a circulant MDS matrix over GF(28) with coefficients [01, 01, 04, 01, 08, 05, 02, 09] (hex). The padding appends bit 1, then zeros, then the message bit-length as a 256-bit big-endian integer.
Where: H0 = 0512 (all-zero initialization vector), E = Whirlpool block cipher, ⊕ = bitwise XOR, mi = i-th 512-bit message block.
Reference Data
| Hash Algorithm | Digest Size (bits) | Block Size (bits) | Rounds | Structure | Standard | Status |
|---|---|---|---|---|---|---|
| Whirlpool | 512 | 512 | 10 | Miyaguchi-Preneel | ISO/IEC 10118-3 | Current |
| SHA-256 | 256 | 512 | 64 | Merkle-Damgård | FIPS 180-4 | Current |
| SHA-512 | 512 | 1024 | 80 | Merkle-Damgård | FIPS 180-4 | Current |
| SHA-3 (256) | 256 | 1088 | 24 | Sponge (Keccak) | FIPS 202 | Current |
| MD5 | 128 | 512 | 64 | Merkle-Damgård | RFC 1321 | Broken |
| SHA-1 | 160 | 512 | 80 | Merkle-Damgård | FIPS 180-4 | Broken |
| RIPEMD-160 | 160 | 512 | 80 | Merkle-Damgård | ISO/IEC 10118-3 | Legacy |
| BLAKE2b | 512 | 1024 | 12 | HAIFA | RFC 7693 | Current |
| Tiger | 192 | 512 | 24 | Merkle-Damgård | - | Legacy |
| GOST R 34.11-2012 | 256/512 | 512 | 12 | Merkle-Damgård | RFC 6986 | Current |
| Whirlpool-0 (v1) | 512 | 512 | 10 | Miyaguchi-Preneel | - | Obsolete |
| Whirlpool-T (v2) | 512 | 512 | 10 | Miyaguchi-Preneel | - | Obsolete |