ESC

Генератор HMAC

Результат HMAC появится здесь...

Сравнение HMAC

Вся обработка происходит в вашем браузере через Web Crypto API. Данные не отправляются на сервер.

Примеры использования

Аутентификация API

Генерация HMAC-подписей для аутентификации API-запросов, широко используемая в REST API.

Верификация вебхуков

Проверка полезной нагрузки вебхуков путём сравнения HMAC-подписей от сервисов вроде Stripe или GitHub.

Подпись JWT

Создание HMAC-SHA256 подписей для подписания полезной нагрузки JSON Web Token (JWT).

Возможности

Несколько алгоритмов

Поддержка HMAC-SHA256, HMAC-SHA384, HMAC-SHA512 и HMAC-SHA1

Сравнение HMAC

Сравнение сгенерированного HMAC с ожидаемым значением для проверки целостности сообщения

Несколько форматов вывода

Вывод в шестнадцатеричном или Base64-формате для различных задач интеграции

Web Crypto API

Использование нативного Web Crypto API для безопасной генерации HMAC в браузере

Как пользоваться?

1

Введите сообщение и ключ

Введите или вставьте сообщение и укажите секретный ключ в соответствующих полях.

2

Выберите алгоритм

Выберите алгоритм HMAC (SHA-256, SHA-384, SHA-512 или SHA-1) и формат вывода.

3

Сгенерируйте и скопируйте

Нажмите «Сгенерировать HMAC» и скопируйте результат. При необходимости сравните с ожидаемым HMAC.

Часто задаваемые вопросы

Обычный хэш вроде SHA-256 только подтверждает, что содержимое не изменилось. HMAC добавляет секретный ключ, поэтому он также подтверждает авторство. Без ключа подделать подпись невозможно.

HMAC-SHA256 в большинстве случаев. Его используют AWS, Stripe и вебхуки GitHub. SHA-512 — если нужен дополнительный запас прочности. Избегайте SHA-1 в новых проектах.

Никогда. Всё работает локально через Web Crypto API. Ваш ключ и сообщение остаются на вашем устройстве.

Что такое HMAC?

HMAC расшифровывается как Hash-based Message Authentication Code (код аутентификации сообщений на основе хэша). Он комбинирует криптографическую хэш-функцию (вроде SHA-256) с секретным ключом для создания подписи, которая подтверждает и целостность, и подлинность сообщения. В отличие от обычного хэша, HMAC гарантирует, что только тот, кто знает секретный ключ, мог создать этот код — поэтому HMAC лежит в основе аутентификации API, верификации вебхуков и подписи JWT.

Где используется HMAC

Если вы интегрировались со Stripe, GitHub или AWS — вы уже использовали HMAC. Stripe подписывает полезную нагрузку вебхуков с помощью HMAC-SHA256, чтобы вы могли убедиться, что они действительно от Stripe. AWS использует HMAC-SHA256 в Signature Version 4 для подписи API-запросов. JWT с алгоритмом HS256 — это буквально HMAC-SHA256 под капотом. Этот инструмент позволяет генерировать и проверять такие подписи без написания кода.

HMAC против обычного хэширования

SHA-256 хэш от «hello» всегда одинаков, кто бы его ни вычислял. HMAC-SHA256 от «hello» различается для каждого секретного ключа — поэтому он подтверждает и то, что сообщение не было изменено, И то, что оно создано тем, кто знает ключ. В этом критическая разница: хэширование обеспечивает целостность, HMAC обеспечивает целостность плюс аутентификацию.

Выбор правильного алгоритма

HMAC-SHA256 — отраслевой стандарт, и его стоит использовать, если нет конкретных причин для другого выбора. HMAC-SHA384 и HMAC-SHA512 создают более длинный вывод для большего запаса безопасности. HMAC-SHA1 поддерживается для обратной совместимости со старыми системами, но не должен использоваться в новых реализациях. Выбор алгоритма не влияет на принцип работы HMAC — он лишь определяет базовую хэш-функцию.

Безопасность и конфиденциальность

Инструмент полностью работает в браузере через Web Crypto API — ту же криптографическую реализацию, которая обрабатывает TLS. Ваш секретный ключ никогда не попадает на сервер. Можете убедиться, запустив инструмент без интернета. В продакшене всегда храните HMAC-ключи в переменных окружения или системах управления секретами, никогда в клиентском коде.

Безопасность и конфиденциальность

Безопасность ваших данных — наш приоритет

Локальная обработка

Вся обработка происходит в вашем браузере

Без передачи данных

Ваши данные не отправляются на наши серверы

Без хранения данных

Данные не хранятся и не передаются

SSL-шифрование

SSL-шифрование для безопасного соединения

Next Step