Algorithms

BLAKE2s

BLAKE2 for 32-bit platforms with a 32-byte digest and HMAC. Smaller state than BLAKE2b and inside WireGuard
IDblake2s14 / 46BLAKE · 256-bit
Hash / Cryptographic

BLAKE2s

BLAKE2 for 32-bit machines.

Digest
256-bit · 32 bytes
HMAC
takes a key
Security
128-bit collision resistance
Family
6 in BLAKE
4 options, 0 required

Sample

hex
9aec6806794561107e594b1f6a8a6b0c92a0cba9acf5e5e93cca06f781813b0b
base64
muxoBnlFYRB+WUsfaoprDJKgy6ms9eXpPMoG94GBOws=

Options

encodingstring
default hex
Output encoding: hex, base64, base64url, binary
keystring
optional
HMAC key; enables HMAC mode
roundsnumber
default 1
How many times to hash, each round hashing the previous digest
chainstring
default bytes
What each round after the first hashes: bytes of the digest, or its lowercase hex

Access

Createcreate("blake2s")
CLIhashes blake2s 'hello world'
Tryplayground with the sample above
Kinblake2b, blake2b-256, blake2b-224, blake3 +1

BLAKE2 on 32-bit words, for the microcontrollers and 32-bit targets where BLAKE2b's 64-bit arithmetic hurts. On a desktop CPU BLAKE2b is usually the faster one.

ts
create("blake2s").hash("abc").digest;
// "508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982"

WireGuard picked this one. HMAC works here too, over BLAKE2s's 64-byte blocks.