0

Генератор і перевірка HMAC

Генеруйте та перевіряйте коди автентифікації повідомлень HMAC із SHA-256, SHA-384, SHA-512 або SHA-1 за допомогою секретного ключа — повністю у вашому браузері.

Buy Me a Coffee at ko-fi.com
Опрацювання... 0%
Імпортування ключа
Обчислення HMAC
Готово

Результат

HMAC (Hash-based Message Authentication Code, код автентифікації повідомлення на основі хешу) — це криптографічна конструкція із ключем, яка поєднує секретний ключ і повідомлення через хеш-функцію, наприклад SHA-256. На відміну від звичайного хешу, який будь-хто може обчислити лише з самого повідомлення, HMAC може відтворити тільки той, хто володіє тим самим секретним ключем — саме це робить його кодом автентифікації, а не просто контрольною сумою.

У цьому й полягає принципова відмінність від звичайного хешу: наш власний інструмент Hash Generator обчислює хеші без ключа, такі як MD5 чи SHA-256, які чудово підходять для виявлення випадкового пошкодження даних, але нічого не доводять щодо того, хто саме створив дані, адже такий самий хеш може обчислити будь-хто. HMAC доводить одночасно цілісність (повідомлення не змінювалося) і автентичність (підписант знав спільний секрет), тому HMAC є стандартним будівельним блоком для підпису API-запитів, алгоритмів HS256/HS384/HS512 у JWT та автентифікації записів TLS.

Найпоширеніший практичний випадок використання — перевірка підписів вебхуків. Такі сервіси, як Stripe, GitHub і Shopify, підписують кожен вебхук-запит за допомогою HMAC-SHA256, використовуючи налаштований вами секрет, і надсилають отриманий підпис у заголовку запиту. Ваш сервер має заново обчислити HMAC для сирого тіла запиту з тим самим секретом і порівняти результат зі значенням заголовка — якщо вони збігаються, ви знаєте, що запит справді надійшов від цього сервісу й не був підмінений під час передавання. Режим перевірки цього інструмента відтворює саме таку перевірку: вставте тіло запиту, спільний секрет і отриманий підпис — і миттєво дізнайтеся про збіг або розбіжність.

Усе відбувається локально завдяки нативному Web Crypto API браузера (crypto.subtle.importKey і crypto.subtle.sign), тому секретний ключ, тіло повідомлення й обчислений підпис ніколи не залишають ваш пристрій — нічого не завантажується на жоден сервер, що важливо, адже секрети HMAC — це саме той тип даних, який не варто вставляти у випадковий онлайн-інструмент, що може їх залогувати.