← retour aux snippets

secrets.compare_digest: comparaison constant-time

Comparer en temps constant pour éviter les attaques temporelles.

python security #secrets#security

objectif

Comparer en temps constant pour éviter les attaques temporelles.

code minimal

import secrets
a = "token-123456"
b = "token-123456"
print(secrets.compare_digest(a, b) is True)  # attendu: True

utilisation

import hmac, hashlib, secrets
secret = b"key"
msg = b"payload"
sig = hmac.new(secret, msg, hashlib.sha256).hexdigest()
provided = sig  # simulate request header
print(secrets.compare_digest(provided, sig))  # attendu: True

variante(s) utile(s)

import secrets
print(isinstance(secrets.compare_digest(b"x", b"x"), bool))

notes

  • Utilisez toujours compare_digest pour comparer des secrets (HMAC, tokens).
  • Évitez l’opérateur == sur des valeurs sensibles.