objectif
Calculer une empreinte authentifiée avec blake2b keyed hashing.
code minimal
import hashlib
h = hashlib.blake2b(key=b"secret", digest_size=32)
h.update(b"message")
print(len(h.hexdigest()) == 64) # attendu: True (32 bytes -> 64 hex)
utilisation
import hashlib, secrets
def mac(data: bytes, key: bytes) -> str:
h = hashlib.blake2b(key=key, digest_size=32); h.update(data); return h.hexdigest()
k = secrets.token_bytes(32)
print(len(mac(b"x", k)) == 64)
variante(s) utile(s)
import hashlib
h = hashlib.blake2s(key=b"k", person=b"scope") # personnalisation
h.update(b"x")
print(isinstance(h.hexdigest(), str))
notes
- blake2 est très rapide et supporte clés, sel, personnalisation.
- Pour compat API/webhooks, préférez HMAC-SHA256 si nécessaire.