все Python 3hmacпонятие
hmac
модуль
Подпись сообщения секретным ключом по алгоритму HMAC: проверка, что данные пришли от владельца ключа и не изменены.
Синтаксис
import hmac
hmac берут для подписи: вебхуки, токены, подписанные ссылки. Простой хеш из hashlib для этого не годится — его посчитает кто угодно, а HMAC без ключа не подделать. Подписи сравнивают через hmac.compare_digest, а не ==: обычное сравнение выдаёт по времени работы, сколько первых символов совпало.
Примеры
import hmac, hashlib
key = b'secret'
sig = hmac.new(key, b'message', hashlib.sha256).hexdigest()
print(len(sig)) # → 64
check = hmac.new(key, b'message', 'sha256').hexdigest()
print(hmac.compare_digest(sig, check)) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности