Хеші/крипто
HMAC Generator
Обчислення HMAC (Hash-based Message Authentication Code) тексту чи файлу з секретним ключем — одразу вісьмома алгоритмами: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.
HMAC (Hash-based Message Authentication Code) — це хеш, обчислений разом із секретним ключем, який доводить, що повідомлення не змінилося й надіслане тим, хто знає цей ключ. На відміну від звичайного хешу, HMAC неможливо підробити без знання секрету.
Як користуватися
- Введіть текст чи файл і секретний ключ — HMAC обчислюється одразу восьмома алгоритмами (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Скопіюйте потрібний варіант для перевірки підпису чи порівняння з очікуваним значенням.
- Той самий вхід і ключ завжди дають однаковий HMAC — зручно для звірки з підписом, отриманим від іншої системи.
Типові сценарії
- Перевірка підпису вебхука від платіжного сервісу чи API (більшість підписують payload через HMAC-SHA256).
- Генерація підпису запиту до API, що вимагає HMAC-автентифікації.
- Діагностика, чому підпис не збігається — покроково звірити ключ, кодування вхідних даних і алгоритм.
Що варто памʼятати
HMAC захищає від підробки й підтверджує автентичність відправника, але не шифрує саме повідомлення — воно лишається читабельним.
Незбіжний HMAC найчастіше спричинений різним кодуванням даних (наприклад, порядком полів у JSON) чи зайвим пробілом/переносом рядка, а не помилкою в самому алгоритмі.
Стаття про цей інструмент: HMAC: чим хеш з ключем відрізняється від звичайного хешу
Часті запитання
Чим HMAC відрізняється від звичайного хешу?
Звичайний хеш лише підтверджує, що дані не змінені; HMAC додатково використовує секретний ключ, тому підтверджує і цілісність, і те, що відправник знав спільний секрет — без ключа неможливо створити коректний HMAC, навіть знаючи алгоритм.
Який алгоритм хешування обрати для HMAC?
HMAC-SHA256 — надійний сучасний варіант за замовчуванням. Старіші HMAC-MD5 чи HMAC-SHA1 самі по собі як HMAC ще не зламані, але для нових систем рекомендують SHA-256 або сильніший.
Чи надсилається мій секретний ключ кудись?
Ні. HMAC обчислюється повністю у вашому браузері через Web Crypto API — ключ і повідомлення ніколи не залишають ваш пристрій.
Чому не можна порівнювати HMAC звичайним оператором рівності?
Звичайне порівняння рядків зупиняється на першій розбіжності, і час виконання видає зловмиснику, скільки перших символів він вгадав правильно (timing attack). Потрібні функції порівняння за постійний час, наприклад hash_equals у PHP.
Чи можна використати той самий ключ для кількох різних цілей?
Не рекомендується. Якщо той самий секретний ключ використовується і для підпису вебхуків, і для іншої мети, компрометація однієї системи автоматично компрометує іншу — для кожного окремого призначення варто генерувати окремий ключ.