Python Glossary English

все 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Сообщить о неточности