Modern cryptographic hash function based on BLAKE2. Splits the message into 1024-byte chunks, hashes each to a chaining value and combines them with a binary Merkle tree of parent nodes, reproducing the official test vectors at every input length. The digest is extendable to any length.
| Property | Value |
|---|---|
| Category | Hash Functions |
| Sub-category | Cryptographic Hash |
| Security status | Not classified |
| Complexity | Advanced |
| Inventor | Jack OβConnor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-OβHearn |
| Year | 2020 |
| Origin | πΊπΈ United States |
| Source | algorithms/hash/blake3.js |
| Parameter | Supported values |
|---|---|
| Output sizes | 32 bytes (256 bits) |
Status: not classified β treat as unverified.
No vulnerabilities are recorded for this implementation.
11 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β BLAKE3 Official Test Vector - Empty string (0 bytes)
| Field | Value |
|---|---|
input |
(empty) |
expected |
af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262 |
Vector 2 β BLAKE3 Official Test Vector - 3 bytes [0,1,2]
| Field | Value |
|---|---|
input |
000102 |
expected |
e1be4d7a8ab5560aa4199eea339849ba8e293d55ca0a81006726d184519e647f |
Vector 3 β BLAKE3 Official Test Vector - 7 bytes [0,1,2,3,4,5,6]
| Field | Value |
|---|---|
input |
00010203040506 |
expected |
3f8770f387faad08faa9d8414e9f449ac68e6ff0417f673f602a646a891419fe |
Vector 4 β BLAKE3 Official Test Vector - 63 bytes
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e |
expected |
e9bc37a594daad83be9470df7f7b3798297c3d834ce80ba85d6e207627b7db7b |
Vector 5 β BLAKE3 Official Test Vector - 64 bytes (exact block boundary)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f |
expected |
4eed7141ea4a5cd4b788606bd23f46e212af9cacebacdc7d1f4c6dc7f2511b98 |
Vector 6 β BLAKE3 Official Test Vector - 65 bytes
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f 40 |
expected |
de1e5fa0be70df6d2be8fffd0e99ceaa8eb6e8c93a63f2d8d1c30ecb6b263dee |
Vector 7 β BLAKE3 Official Test Vector - 128 bytes (exact block boundary)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f 404142434445464748494a4b4c4d4e4f 505152535455565758595a5b5c5d5e5f 606162636465666768696a6b6c6d6e6f 707172737475767778797a7b7c7d7e7f |
expected |
f17e570564b26578c33bb7f44643f539624b05df1a76c81f30acd548c44b45ef |
Vector 8 β BLAKE3 Official Test Vector - 1024 bytes (exact chunk boundary)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f β¦ (1024 bytes; the full value is in the source) |
expected |
42214739f095a406f3fc83deb889744ac00df831c10daa55189b5d121c855af7 |
Vector 9 β BLAKE3 Official Test Vector - 1025 bytes (two chunks, one parent)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f β¦ (1025 bytes; the full value is in the source) |
expected |
d00278ae47eb27b34faecf67b4fe263f82d5412916c1ffd97c8cb7fb814b8444 |
Vector 10 β BLAKE3 Official Test Vector - 2049 bytes (three chunks, unbalanced tree)
| Field | Value |
|---|---|
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f β¦ (2049 bytes; the full value is in the source) |
expected |
5f4d72f40d7a5f82b15ca2b2e44b1de3c2ef86c426c95c1af0b6879522563030 |
Vector 11 β BLAKE3 Official Test Vector - 1025 bytes, 131 byte extended output
| Field | Value |
|---|---|
outputSize |
131 |
input |
000102030405060708090a0b0c0d0e0f 101112131415161718191a1b1c1d1e1f 202122232425262728292a2b2c2d2e2f 303132333435363738393a3b3c3d3e3f β¦ (1025 bytes; the full value is in the source) |
expected |
d00278ae47eb27b34faecf67b4fe263f 82d5412916c1ffd97c8cb7fb814b8444 f4c4a22b4b399155358a994e52bf255d e60035742ec71bd08ac275a1b51cc6bf e332b0ef84b409108cda080e6269ed4b 3e2c3f7d722aa4cdc98d16deb554e562 7be8f955c98e1d5f9565a9194cad0c42 85f93700062d9595adb992ae68ff1280 0ab67a |