What is BLAKE2?
BLAKE2 is a cryptographic hash family finalized in 2013, derived from BLAKE — itself a finalist of the NIST SHA-3 competition. Because SHA-3 chose Keccak, BLAKE's follow-up BLAKE2 was engineered for one thing: being the fastest secure hash a software developer can reach for, without the performance drag of its cryptographic ancestors.
Its status as the "fast secure default" is now institutionalized: it is the hash used inside Argon2 (the password-hashing winner), the default hash of libsodium, the hash of the Zcash and Bitcoin Cash ecosystems, and a standard hash in Go, Rust, Python, and OpenSSL.
The ChaCha-based construction
BLAKE2 belongs to the HAIFA-like iterated hash family, but its mixing is built on the ChaCha quarter-round: a 32-bit (BLAKE2s) or 64-bit (BLAKE2b) word function of four additions, three XORs, and two rotations. The same core powers the ChaCha20 stream cipher used in TLS 1.3 and WireGuard, giving BLAKE2 both speed and a security foundation that has withstood scrutiny as a cipher core for years.
BLAKE2b vs BLAKE2s
| BLAKE2b | BLAKE2s | |
|---|---|---|
| Word size | 64-bit | 32-bit |
| Max digest | 512 bits | 256 bits |
| This tool | BLAKE2b-512 (128 hex) | BLAKE2s-256 (64 hex) |
| Best for | 64-bit CPUs, servers | 32-bit / embedded devices |
Keyed, truncation & parallel modes
Unlike SHA-2, BLAKE2 supports a native keyed mode — hash input under a secret key directly, no HMAC needed — and variable output length from 1 to 512 bits, so you can truncate without weakening the standard parameterization. BLAKE2bp and BLAKE2sp are the parallel variants that split input across cores; Argon2 uses the BLAKE2b function internally in its compression.
Security level
BLAKE2's designers targeted the same security as SHA-3: 128-bit and 256-bit collision/preimage levels for the b and s variants respectively. More than a decade of analysis has produced no practical attack on the full hash, and its reuse of ChaCha's well-studied round function means the security claim rests on heavily-audited hardware-independent foundations.
Real-world deployments
- Argon2 — the PHC winner and recommended password KDF uses BLAKE2b internally; this site's Argon2id inherits it.
- Zcash — BLAKE2b-512; Bitcoin Cash and Tor — BLAKE2s.
- libsodium / Sodium —
crypto_generichashis BLAKE2b, the default for general hashing. - Go's stdlib / OpenSSL — both expose BLAKE2b and BLAKE2s natively.
How this tool works
BLAKE2 is not exposed by the Web Crypto API, so this page uses the hash-wasm
WebAssembly build of the reference implementation. The WASM module is fetched once; every
subsequent digest reuses it via init(), so hashing is effectively instant. Input is
decoded on-device (UTF-8, hex, or Base64), hashed locally, and never transmitted.
Worked examples you can verify right now
| Input | BLAKE2b-512 digest (128 hex) | BLAKE2s-256 digest (64 hex) |
|---|---|---|
(empty string) | 786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce | 69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9 |
hello world | 021ced8799296ceca557832ab941a50b4a11f83478cf141f51f933f653ab9fbcc05a037cddbed06e309bf334942c4e58cdf1a46e237911ccd7fcf9787cbc7fd0 | 9aec6806794561107e594b1f6a8a6b0c92a0cba9acf5e5e93cca06f781813b0b |
Paste the exact bytes of any row into this tool (matching UTF-8 exactly) and you will get precisely these digests — a quick, deterministic sanity check for your own BLAKE2 wiring. Switch the algorithm selector and the output length follows (128 vs 64 hex characters).