Хеши/крипто
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) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.
How to use it
- Enter text or a file and a secret key — the HMAC is computed instantly with eight algorithms at once (MD5, SHA-1, SHA-2, SHA3, RIPEMD-160).
- Copy the variant you need to verify a signature or compare against an expected value.
- The same input and key always produce the same HMAC — handy for checking against a signature received from another system.
Common uses
- Verifying a webhook signature from a payment service or API (most sign the payload with HMAC-SHA256).
- Generating a request signature for an API that requires HMAC authentication.
- Debugging a mismatched signature — checking the key, input encoding, and algorithm one at a time.
Things to keep in mind
HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.
A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.
Статья об этом инструменте: HMAC: чем хеш с ключом отличается от обычного хеша
Часто задаваемые вопросы
Чем HMAC отличается от обычного хеша?
Обычный хеш лишь подтверждает, что данные не изменены; HMAC дополнительно использует секретный ключ, поэтому подтверждает и целостность, и то, что отправитель знал общий секрет — без ключа невозможно создать корректный HMAC, даже зная алгоритм.
Какой алгоритм хеширования выбрать для HMAC?
HMAC-SHA256 — надёжный современный вариант по умолчанию. Более старые HMAC-MD5 или HMAC-SHA1 сами по себе как HMAC ещё не взломаны, но для новых систем рекомендуют SHA-256 или сильнее.
Отправляется ли мой секретный ключ куда-либо?
Нет. HMAC вычисляется полностью в вашем браузере через Web Crypto API — ключ и сообщение никогда не покидают ваше устройство.
Почему нельзя сравнивать HMAC обычным оператором равенства?
Обычное сравнение строк останавливается на первом расхождении, и время выполнения выдаёт злоумышленнику, сколько первых символов он угадал правильно (timing attack). Нужны функции сравнения за постоянное время, например hash_equals в PHP.
Можно ли использовать один и тот же ключ для нескольких разных целей?
Не рекомендуется. Если один и тот же секретный ключ используется и для подписи вебхуков, и для другой цели, компрометация одной системы автоматически компрометирует другую — для каждого отдельного назначения стоит генерировать отдельный ключ.