Генератор HMAC

Вычислите HMAC из сообщения и ключа с SHA-1, SHA-2 или SHA-3, сверьте его с ожидаемой подписью и выведите в hex или Base64 — прямо в браузере.

Загрузка инструмента…

Генератор HMACВведите сообщение и секретный ключ, выберите SHA-1, SHA-256, SHA-384, SHA-512 или вариант SHA-3 и мгновенно получите соответствующую подпись HMAC, которая обновляется в реальном времени по мере ввода. Интерпретируйте ключ как UTF-8, шестнадцатеричные данные или Base64, выводите результат в шестнадцатеричном виде в нижнем или верхнем регистре либо в Base64 и вставьте ожидаемое значение, чтобы проверить его сравнением за постоянное время. Всё выполняется локально — SHA-2 через Web Crypto API, а SHA-3 через WebAssembly в браузере — поэтому ваше сообщение и ключ никогда не покидают браузер.

Что такое Генератор HMAC?

Генератор HMAC — это бесплатный онлайн-инструмент, который вычисляет код аутентификации сообщения на основе ключевого хеша (HMAC) из любого текстового сообщения и общего секретного ключа. Он поддерживает SHA-1, SHA-256, SHA-384 и SHA-512 через Web Crypto API, а также семейство SHA-3 — SHA3-224, SHA3-256, SHA3-384 и SHA3-512 — и выводит подпись в шестнадцатеричном виде (в нижнем или верхнем регистре) либо в Base64. Ключ можно интерпретировать как текст UTF-8, шестнадцатеричные данные или байты Base64, а вставив ожидаемый HMAC, переключиться в режим проверки, где сверка выполняется сравнением за постоянное время для защиты от атак по времени. Разработчики используют его для подписи полезной нагрузки веб-хуков, создания и проверки подписей запросов к API, генерации защищённых от подделки токенов или подтверждения того, что значение совпадает с подписью из другой системы. Подпись пересчитывается в реальном времени при редактировании любого поля и работает полностью в браузере. Среди распространённых запросов — "hmac sha256 generator", "hmac sha3", "hmac base64" и "hmac verify online".

Как пользоваться Генератор HMAC

  1. Введите или вставьте сообщение, которое нужно подписать, в поле ввода.
  2. Введите общий секретный ключ и в «Параметрах» укажите, что это — UTF-8, шестнадцатеричные данные или Base64.
  3. Выберите алгоритм хеширования — SHA-1, SHA-256, SHA-384, SHA-512 или вариант SHA-3 — из выпадающего списка.
  4. Переключайте вывод между Hex и Base64 и при необходимости включите шестнадцатеричный в верхнем регистре в «Параметрах».
  5. Смотрите, как HMAC обновляется автоматически, и нажмите «Копировать» — или вставьте ожидаемый HMAC в поле проверки, чтобы сверить совпадение.

Примеры

HMAC-SHA256 в hex

Ввод

сообщение: The quick brown fox
ключ: secret
алгоритм: SHA-256
кодировка: Hex

Вывод

7a284e5025f32a846fa3e6957d10278eb5726dd4e0b04c8e0259defcd2cd0eb1

Тот же ввод в Base64

Ввод

сообщение: The quick brown fox
ключ: secret
алгоритм: SHA-256
кодировка: Base64

Вывод

eihOUCXzKoRvo+aVfRAnjrVybdTgsEyOAlne/NLNDrE=

Проверка подписи

Вставьте ожидаемый HMAC в поле проверки; когда он совпадает с вычисленной подписью, инструмент сообщает о совпадении, используя сравнение за постоянное время. Шестнадцатеричный сравнивается без учёта регистра.

Часто задаваемые вопросы

Какие алгоритмы хеширования и кодировки поддерживаются?
SHA-1, SHA-256, SHA-384 и SHA-512 (через Web Crypto API) и семейство SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512). Подпись отображается в шестнадцатеричном виде — в нижнем или верхнем регистре — либо в Base64, а ключ можно интерпретировать как UTF-8, шестнадцатеричные данные или Base64.
Загружаются ли куда-нибудь моё сообщение и секретный ключ?
Нет. HMAC вычисляется на 100% на стороне клиента: SHA-2 с помощью Web Crypto API, а SHA-3 с помощью WebAssembly в браузере. Ни сообщение, ни ключ никогда не отправляются на сервер, поэтому инструмент безопасно использовать с настоящими ключами.
Как работает режим проверки?
Вставьте ожидаемое значение в поле проверки. Инструмент сравнивает его со свежевычисленным HMAC алгоритмом за постоянное время, который никогда не завершается досрочно, поэтому время сравнения не выдаёт, где возникло несоответствие. Шестнадцатеричный сравнивается без учёта регистра.
Как обрабатывается секретный ключ?
По умолчанию ключ — это текст UTF-8, но в «Параметрах» его можно переключить на шестнадцатеричный или Base64, чтобы точно декодировать двоичные ключи. Поле ключа — это поле пароля: оно маскируется на экране и исключается из сохраняемого состояния рабочего пространства, и используется только в вашем браузере.
Почему мой HMAC отличается от результата другого инструмента?
HMAC точно зависит от байтов сообщения, байтов ключа и выбранного хеша. Конечные пробелы, другой алгоритм, hex вместо Base64, верхний регистр вместо нижнего в hex или другая кодировка ключа — всё это меняет результат.

Похожие инструменты