Калькулятор HMAC
HMAC-SHA256 или HMAC-SHA512 сообщения с секретным ключом — пересчёт на лету при вводе. Вывод в hex, ввод в UTF-8, пустое сообщение тоже считается.
Введённые данные и файлы остаются в браузере
Ключ и сообщение
Вставьте подписываемое сообщение (например, тело вебхука) или загрузите пример.
Введите секретный ключ — HMAC вычисляется по мере ввода.
На этой странице
Калькулятор HMAC вычисляет код аутентификации сообщения с ключом (RFC 2104) на SHA-256 или SHA-512 прямо во время ввода. Он помогает проверить подпись вебхука или воспроизвести подпись API-запроса; ключ и сообщение остаются в браузере.
Подробное описание функциональности
Введите Ключ и Сообщение — оба берутся как текст в UTF-8 ровно в том виде, как введены. Результат пересчитывается при каждом нажатии клавиши и смене алгоритма и выводится строчным hex: 64 символа для HMAC-SHA256, 128 — для HMAC-SHA512. Вычисление выполняет модуль на Rust/WebAssembly внутри страницы.
Пустое сообщение — допустимый ввод: с ключом key HMAC-SHA256 от пустого сообщения равен 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0, как в OpenSSL и других библиотеках. Без ключа вывод остаётся пустым. Ключи длиннее блока хэш-функции (64 байта для SHA-256, 128 для SHA-512) сначала хэшируются, как требует стандарт.
Поле ключа принимает только текст, поэтому секрет, который сервис выдаёт в hex или Base64, нужно вводить в том виде, в каком сервис сам использует его как ключ. Результаты сверены с тестовыми векторами RFC 4231. Ничего не сохраняется: после перезагрузки поля пустые.
Практические примеры
Классический тестовый вектор: ключ key, сообщение The quick brown fox jumps over the lazy dog, SHA-256 → f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8.
RFC 4231, тест 2: ключ Jefe, сообщение what do ya want for nothing?, SHA-256 → 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.
Пустое сообщение: ключ key и пустое сообщение дают 5d5d139563c95b5967b9bd9a8c9b233a9dedb45072794cd232dc1b74832607d0 — то же, что printf '' | openssl dgst -sha256 -hmac key.
Проверка вебхука: вставьте исходное тело запроса как сообщение, а секрет вебхука — как ключ; если провайдер присылает sha256=<hex>, сравнивайте с результатом только hex-часть.
Как использовать этот инструмент
Введите ключ
Введите или вставьте общий секрет в поле Ключ.
Введите сообщение
Вставьте в Сообщение ровно те байты, которые подписывались, или оставьте поле пустым, чтобы посчитать HMAC пустой строки.
Выберите алгоритм
Выберите SHA-256 или SHA-512 в поле Алгоритм — Вывод обновится сразу (или нажмите Вычислить).
Скопируйте или очистите
Копировать забирает hex-значение, Очистить опустошает оба поля.
Советы и лучшие практики
- Подписывайте ровно те байты, что подписал сервер: переформатированный JSON, другой порядок ключей или лишний перевод строки в конце меняют HMAC.
- В своём коде сравнивайте HMAC за постоянное время; визуальная сверка здесь — только для отладки.
- Секрет, вставленный с пробелом или переводом строки в конце, — это другой ключ; проверьте поле, если значения не сходятся.
- HMAC-SHA512 не «вдвое надёжнее» в обычных задачах — берите тот алгоритм, который ожидает другая сторона.
- Если ожидаемое значение в Base64, это те же байты, что и в hex-выводе: переведите одно в другое перед сравнением.