DevToolPal
UK

Генератор 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 обчислюється у браузері. Ключ зберігається лише в пам’яті цієї сторінки: він не зберігається, не потрапляє в адресний рядок і не додається до посилань для поширення.