DevToolPal
RU

Генератор HMAC

Вычисляет HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 и HMAC-SHA512 сообщения с секретным ключом в hex или Base64.

Работает локально, без загрузки на сервер

Параметры

Формат ключа
Вывод

Сообщение

Символов: 0 · 0 B

HMAC

Здесь появится результат

Что делает инструмент

HMAC (код аутентификации сообщения на основе хеша, RFC 2104) объединяет секретный ключ с хеш-функцией, чтобы подписать сообщение. Получатель, знающий тот же ключ, заново вычисляет HMAC и сравнивает его с присланным. Если сообщение изменили или отправитель не знал ключа, значения не совпадут.

HMAC используется повсюду: подписи вебхуков (GitHub, Stripe, Slack), подписанные запросы к API, JWT с HS256, подпись cookie и одноразовые пароли. Инструмент одновременно вычисляет HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 и HMAC-SHA512, чтобы вы могли сверить значение с вашей системой.

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

  1. Введите Секретный ключ. Если ключ задан байтами в hex или Base64, а не текстом, переключите Формат ключа.
  2. Вставьте Сообщение или нажмите Пример.
  3. Все HMAC обновляются при вводе. Выберите вывод Hex или Base64 и скопируйте нужное значение.

Сообщение кодируется в UTF-8 ровно так, как введено, включая пробелы и переводы строк.

Пример

Для ключа key и сообщения The quick brown fox jumps over the lazy dog HMAC-SHA256 равен f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8. Проверить можно в командной строке:

echo -n "The quick brown fox jumps over the lazy dog" | openssl dgst -sha256 -hmac "key"

Обратите внимание на -n: без него echo добавит перевод строки, и HMAC изменится.

Проверка вебхуков

Чтобы проверить вебхук, возьмите исходное тело запроса до разбора JSON, соберите строку, описанную в документации сервиса (часто timestamp.body), вычислите HMAC с вашим секретом подписи и сравните с заголовком подписи. В своём коде сравнивайте подписи функцией с постоянным временем выполнения, чтобы избежать атак по времени.

Частые вопросы

› Чем хеш отличается от HMAC?

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

› Какой алгоритм HMAC выбрать?

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

› Почему мой HMAC не совпадает с серверным?

Проверьте точные байты сообщения (перевод строки в конце или другие пробелы в JSON меняют всё), формат ключа (текст, hex или Base64) и кодировку вывода. Сервисы вебхуков часто подписывают строку из метки времени и исходного тела запроса.

› Сохраняется ли мой секретный ключ или отправляется куда-то?

Нет. HMAC вычисляется в браузере. Ключ хранится только в памяти этой страницы: он не сохраняется, не попадает в адресную строку и не включается в ссылки для отправки.