HMAC (Keyed-Hash Message Authentication Code) — это механизм для проверки целостности и подлинности сообщения с использованием криптографической хеш-функции и секретного ключа. Он гарантирует, что сообщение не было подделано и исходит от доверенного отправителя.
Принцип работы:
ipad (inner pad).opat (outer pad).На стороне отправителя вычисляется HMAC для сообщения с использованием секретного ключа и отправляется вместе с сообщением получателю.
На стороне получателя вычисляется HMAC для полученного сообщения с использованием того же секретного ключа. Полученный HMAC сравнивается с тем, что был отправлен. Если они совпадают, сообщение считается подлинным и не измененным.
HMAC устойчив к атакам расширения длины сообщения (length-extension attacks), от которых могут страдать простые схемы hash(key + message) или hash(message + key).
Примеры использования:
javascript