Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.
Что HMAC добавляет к обычному хешу
HMAC (код аутентификации сообщения на основе хеша) подмешивает секретный ключ в процесс хеширования. Если SHA-256 сообщения доказывает лишь то, что байты не изменились, то HMAC дополнительно доказывает, что создавший его знал общий ключ, — так сервер может доверять, что входящий вебхук действительно пришёл от ожидаемого отправителя. С ключом key и сообщением The quick brown fox jumps over the lazy dog HMAC-SHA256 даёт f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
Обычного хеша для аутентификации недостаточно: SHA-256 может вычислить кто угодно, поэтому злоумышленник подделает хеш. HMAC устойчив к этому, включая атаки удлинения, ломающие наивные схемы вида hash(секрет + сообщение). Используйте HMAC-SHA256 для подписи запросов к API, проверки вебхуков (Stripe, GitHub, Slack) и получения посообщенных токенов. Ключ должен оставаться секретным, длинным и случайным.
Как вычислить HMAC
- Выберите алгоритм HMAC: SHA-1, SHA-256 или SHA-512.
- Введите секретный ключ в замаскированное поле ключа.
- Введите или вставьте сообщение для аутентификации.
- Сравните подпись с той, что получает ваш сервер.
Частые вопросы о HMAC
Зачем HMAC нужен ключ?
Ключ превращает публичный отпечаток в доказательство аутентификации: совпадающий MAC могут создать только стороны, знающие секрет.
HMAC-SHA1 или HMAC-SHA256?
HMAC-SHA256 — современный выбор по умолчанию для вебхуков и подписи запросов. HMAC-SHA1 ещё встречается в старых протоколах и допустим, когда нужен для совместимости.
HMAC — это шифрование?
Нет. Он не скрывает сообщение, а лишь доказывает целостность и подлинность. Для конфиденциальности шифруйте отдельно.
Всё выполняется в вашем браузере: введённый текст, ключ HMAC и ожидаемый хеш не покидают устройство.
