objectif
Créer des clés API et tokens aléatoires résistants aux attaques.
code minimal
import secrets
tok = secrets.token_urlsafe(32) # ~256 bits d'entropie
print(len(tok) >= 43) # attendu: True (encodage base64-url)
utilisation
import secrets
a = "constant_time_compare"
b = "constant_time_compare"
print(secrets.compare_digest(a, b)) # True même timing
variante(s) utile(s)
import secrets
# bytes bruts si nécessaire (non imprimables)
key = secrets.token_bytes(32)
print(len(key) == 32)
notes
- Préférez secrets à random pour tout ce qui est sécurité.
- compare_digest évite les attaques par timing.