Генератор HMAC хеша онлайн
HMAC (Hash-based Message Authentication Code) — механизм аутентификации сообщений на основе хеш-функций. В отличие от обычного хеширования, HMAC использует секретный ключ: одно и то же сообщение с разными ключами даёт разные хеши. Это позволяет не только проверить целостность данных, но и убедиться, что сообщение отправлено тем, кто знает ключ.
Инструмент поддерживает четыре алгоритма: HMAC-MD5 (32 символа), HMAC-SHA1 (40 символов), HMAC-SHA256 (64 символа) и HMAC-SHA512 (128 символов). Расчёт происходит в браузере — ни ключ, ни сообщение не отправляются на сервер.
Где применяется HMAC: верификация webhook-запросов (GitHub, Stripe, Telegram), подпись JWT-токенов (алгоритмы HS256/HS384/HS512), аутентификация API-запросов (AWS Signature V4, HMAC-based API keys), защита данных в протоколах TLS и IPsec.
Часто задаваемые вопросы
- Что такое HMAC и чем он отличается от обычного хеша?
- HMAC — это хеш с секретным ключом. Обычный хеш (SHA-256, MD5) вычисляется только из сообщения, и любой может его воспроизвести. HMAC требует знания ключа: без него невозможно вычислить или подделать правильный хеш. Это делает HMAC пригодным для аутентификации — вы можете убедиться, что сообщение пришло от того, кто знает ключ.
- Какой алгоритм HMAC выбрать?
- HMAC-SHA256 — универсальный выбор для большинства задач. Он используется в JWT (HS256), AWS Signature V4 и большинстве webhook-интеграций. HMAC-SHA512 даёт более длинный хеш и быстрее работает на 64-битных процессорах. HMAC-MD5 и HMAC-SHA1 считаются устаревшими для криптографии, но встречаются в легаси-системах.
- Безопасно ли вычислять HMAC в браузере?
- Да. Этот инструмент вычисляет HMAC полностью на стороне клиента — секретный ключ и сообщение не покидают ваш браузер и не отправляются на сервер. Это можно проверить во вкладке Network в DevTools: при генерации не происходит сетевых запросов.
- Можно ли расшифровать HMAC обратно?
- Нет. HMAC, как и обычный хеш — односторонняя функция. Из результата невозможно восстановить ни исходное сообщение, ни ключ. HMAC используется для верификации: получатель, зная ключ и сообщение, вычисляет HMAC заново и сравнивает с полученным.
- Как работает верификация webhook через HMAC?
- Сервис (например, GitHub или Stripe) отправляет запрос с заголовком, содержащим HMAC-подпись тела запроса. Ваш сервер вычисляет HMAC от полученного тела с общим секретным ключом и сравнивает результат с подписью из заголовка. Если совпадает — запрос подлинный. Этот инструмент удобен для ручной проверки таких подписей при отладке.
- Влияет ли длина ключа на безопасность HMAC?
- Ключ должен быть не короче длины хеша используемого алгоритма (32 байта для SHA-256, 64 байта для SHA-512). Более короткий ключ снижает безопасность, более длинный — не увеличивает её, так как ключ предварительно хешируется до размера блока. Для генерации надёжного ключа используйте криптографически стойкий генератор случайных чисел.