HMAC: защита сообщений секретным ключом
Коротко: HMAC — контрольное значение из сообщения и секретного ключа; оно доказывает, что сообщение исходит от обладателя ключа и не изменено в пути.
Подробнее: Обычный хеш (например, SHA-256) может вычислить любой: злоумышленник меняет сообщение и пересчитывает хеш. HMAC (hash-based message authentication code) включает секретный ключ; без него никто не может получить действительное значение.
Подробности
Как это работает
HMAC(ключ, сообщение) = Hash( (ключ ⊕ opad) ‖ Hash( (ключ ⊕ ipad) ‖ сообщение ) )
Отправитель и получатель знают один и тот же секретный ключ; получатель пересчитывает HMAC и сравнивает.
См. также: хеширование, SHA-256, вебхуки, JWT, цифровая подпись