Хеши/крипто
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.
Можно ли использовать один и тот же ключ для нескольких разных целей?
Не рекомендуется. Если один и тот же секретный ключ используется и для подписи вебхуков, и для другой цели, компрометация одной системы автоматически компрометирует другую — для каждого отдельного назначения стоит генерировать отдельный ключ.