Whirlpool is a cryptographic hash function designed by Vincent Rijmen and Paulo S. L. M. Barreto. It produces a 512-bit hash value and is based on a substantially modified AES.
| Property | Value |
|---|---|
| Category | Hash Functions |
| Sub-category | AES-Based Hash |
| Security status | 🎓 Educational Only |
| Complexity | Intermediate |
| Inventor | Vincent Rijmen, Paulo S. L. M. Barreto |
| Year | 2000 |
| Origin | 🌐 International |
| Source | algorithms/hash/whirlpool.js |
| Parameter | Supported values |
|---|---|
| Output sizes | 64 bytes (512 bits) |
Status: 🎓 Educational Only
No vulnerabilities are recorded for this implementation.
10 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — ISO/IEC 10118-3 Test Vector - Empty String
| Field | Value |
|---|---|
input |
(empty) |
expected |
19fa61d75522a4669b44e39c1d2e1726 c530232130d407f89afee0964997f7a7 3e83be698b288febcf88e3e03c4f0757 ea8964e59b63d93708b138cc42a66eb3 |
Vector 2 — ISO/IEC 10118-3 Test Vector - ‘a’
| Field | Value |
|---|---|
input |
61 |
expected |
8aca2602792aec6f11a67206531fb7d7 f0dff59413145e6973c45001d0087b42 d11bc645413aeff63a42391a39145a59 1a92200d560195e53b478584fdae231a |
Vector 3 — ISO/IEC 10118-3 Test Vector - ‘abc’
| Field | Value |
|---|---|
input |
616263 |
expected |
4e2448a4c6f486bb16b6562c73b4020b f3043e3a731bce721ae1b303d97e6d4c 7181eebdb6c57e277d0e34957114cbd6 c797fc9d95d8b582d225292076d4eef5 |
Vector 4 — ISO/IEC 10118-3 Test Vector - ‘message digest’
| Field | Value |
|---|---|
input |
6d65737361676520646967657374 |
expected |
378c84a4126e2dc6e56dcc7458377aac 838d00032230f53ce1f5700c0ffb4d3b 8421557659ef55c106b4b52ac5a4aaa6 92ed920052838f3362e86dbd37a8903e |
Vector 5 — ISO/IEC 10118-3 Test Vector - lowercase alphabet
| Field | Value |
|---|---|
input |
6162636465666768696a6b6c6d6e6f707172737475767778797a |
expected |
f1d754662636ffe92c82ebb9212a484a 8d38631ead4238f5442ee13b8054e41b 08bf2a9251c30b6a0b8aae86177ab4a6 f68f673e7207865d5d9819a3dba4eb3b |
Vector 6 — ISO/IEC 10118-3 Test Vector - A-Z, a-z, 0-9
| Field | Value |
|---|---|
input |
4142434445464748494a4b4c4d4e4f50 5152535455565758595a616263646566 6768696a6b6c6d6e6f70717273747576 7778797a30313233343536373839 |
expected |
dc37e008cf9ee69bf11f00ed9aba2690 1dd7c28cdec066cc6af42e40f82f3a1e 08eba26629129d8fb7cb57211b9281a6 5517cc879d7b962142c65f5a7af01467 |
Vector 7 — ISO/IEC 10118-3 Test Vector - 8 times ‘1234567890’
| Field | Value |
|---|---|
input |
31323334353637383930313233343536 37383930313233343536373839303132 33343536373839303132333435363738 39303132333435363738393031323334 35363738393031323334353637383930 |
expected |
466ef18babb0154d25b9d38a6414f5c0 8784372bccb204d6549c4afadb601429 4d5bd8df2a6c44e538cd047b2681a51a 2c60481e88c5a20b2c2a80cf3a9a083b |
Vector 8 — ISO/IEC 10118-3 Test Vector - ‘abcdbcdecdefdefgefghfghighijhijk’ (32 bytes, extra padding block)
| Field | Value |
|---|---|
input |
6162636462636465636465666465666765666768666768696768696a68696a6b |
expected |
2a987ea40f917061f5d6f0a0e4644f48 8a7a5a52deee656207c562f988e95c69 16bdc8031bc5be1b7b947639fe050b56 939baaa0adff9ae6745b7b181c3be3fd |
Vector 9 — Wikipedia - ‘The quick brown fox jumps over the lazy dog’ (43 bytes, extra padding block)
| Field | Value |
|---|---|
input |
54686520717569636b2062726f776e20 666f78206a756d7073206f7665722074 6865206c617a7920646f67 |
expected |
b97de512e91e3828b40d2b0fdce9ceb3 c4a71f9bea8d88e75c4fa854df36725f d2b52eb6544edcacd6f8beddfea403cb 55ae31f03ad62a5ef54e42ee82c3fb35 |
Vector 10 — DarkCrypt Whirlpool - 64-byte incrementing message (00..3F)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f |
expected |
5c3c6f524c8ae1e7a4f76b84977b1560 e78eb568e2fd8d72699ad79186481bd4 2b53ab39a0b741d9c098a4ecb01f3ecc f3844cf1b73a9355ee5d496a2a1fb5b3 |