— Об этом инструменте
HMAC (Hash-based Message Authentication Code) объединяет сообщение, секретный ключ и хеш-функцию, чтобы получить подпись, которая подтверждает как целостность, так и подлинность сообщения. Любой, у кого есть общий секрет, может пересчитать HMAC и убедиться, что сообщение не было подделано — это механизм, лежащий в основе подписей вебхуков (Stripe, GitHub, Slack), подписанных cookie и многих схем аутентификации API.
Введите сообщение и секрет, выберите алгоритм хеширования и кодировку вывода — и подпись будет обновляться по мере ввода. Она вычисляется с помощью Web Crypto API в вашем браузере, поэтому ни сообщение, ни секрет никогда не отправляются на сервер. Используйте SHA-256, если конкретная интеграция не требует иного.
Сообщение и секрет никогда не покидают ваш браузер — HMAC вычисляется локально с помощью Web Crypto API.
Часто задаваемые вопросы
В чём разница между HMAC и обычным хешем?
Обычный хеш (например, SHA-256) кто угодно может вычислить из одного только сообщения, поэтому он подтверждает лишь целостность. HMAC дополнительно подмешивает секретный ключ, поэтому действительная подпись также подтверждает, что отправитель знал секрет — именно это делает его полезным для аутентификации.
Какой алгоритм мне выбрать?
SHA-256 — стандартный выбор, который ожидает большинство API. SHA-384 и SHA-512 дают вывод большего размера; SHA-1 поддерживается для устаревших интеграций, но больше не рекомендуется для новых систем.
Что лучше — вывод в hex или Base64?
Они кодируют одни и те же байты — выбирайте тот, который ожидает ваша интеграция. Провайдеры вебхуков обычно указывают один из них; например, GitHub использует hex, тогда как некоторые другие используют Base64.