Генератор HMAC с ключом

Введите сообщение и секретный ключ. Вы получите HMAC сообщения четырьмя хеш-функциями, в шестнадцатеричном виде и в Base64. Всё считается в вашем браузере.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Данные для проверки подлинности. Текст читается как UTF-8 ровно так, как введён. Шестнадцатеричная запись или Base64 читаются как байты.

Кодировка сообщения

Как записано сообщение.

Секретный ключ. Создать тот же HMAC может только тот, у кого тот же ключ, поэтому держите его в секрете.

Кодировка ключа

Как записан ключ. Base64 также читает алфавит URL-safe, в котором записано значение «k» в JWK.

Результат

Значения HMAC

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

Как пользоваться

  1. Введите данные в поле Сообщение. Для двоичных данных выберите Шестнадцатеричная или Base64 в поле Кодировка сообщения.
  2. Введите секрет в поле Ключ и выберите, как он записан, в поле Кодировка ключа.
  3. Прочитайте четыре строки Значения HMAC. Скопируйте нужное значение или сравните его с тем, что выдаёт ваша система.
  4. Если значения отличаются от значений другой системы, сначала проверьте байты: другой перенос строки или другая кодировка дают другой HMAC.

Что такое HMAC

HMAC (RFC 2104) — это код проверки подлинности сообщения: короткое значение, которое может создать только тот, кто знает секретный ключ. Он строится из обычной хеш-функции H, которая применяется дважды к сообщению и ключу, поэтому одна и та же хеш-функция используется для всех четырёх строк таблицы. Так как нужен ключ, совпадение HMAC показывает, что сообщение не менялось и пришло от владельца ключа.

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

HMAC(K, m) = H((K XOR opad) || H((K XOR ipad) || m))

ipad = байт 0x36, повторённый B раз
opad = байт 0x5C, повторённый B раз
B    = размер блока H: 64 байта для SHA-1 и SHA-256, 128 байтов для SHA-384 и SHA-512

Какая хеш-функция и какой ключ

HMAC-SHA-256 — обычный выбор, его используют многие вебхуки и API. HMAC-SHA-512 построен так же, но выдаёт более длинный результат. HMAC-SHA-1 всё ещё встречается в старых системах, и для новых решений его выбирать не стоит.

Ключ должен быть случайным и не короче выхода хеш-функции. Ключ, введённый как слово или короткая фраза, легко угадать, а угаданный ключ обесценивает HMAC.

Шестнадцатеричная запись и Base64

Обе формы показывают одни и те же байты. Шестнадцатеричная запись записывает каждый байт двумя цифрами, поэтому у SHA-256 64 цифры. Base64 записывает три байта четырьмя символами, поэтому у SHA-256 44 символа, последний из которых = — знак дополнения (RFC 4648).

  • HMAC-SHA-1: 40 шестнадцатеричных цифр, 28 символов Base64
  • HMAC-SHA-256: 64 шестнадцатеричные цифры, 44 символа Base64
  • HMAC-SHA-384: 96 шестнадцатеричных цифр, 64 символа Base64
  • HMAC-SHA-512: 128 шестнадцатеричных цифр, 88 символов Base64

Пример: тестовый случай 2 из RFC 4231

Ключ Jefe и сообщение what do ya want for nothing? — это второй тестовый случай RFC 4231 для SHA-256, SHA-384 и SHA-512 и RFC 2202 для SHA-1. Таблица ниже показывает, что выводит страница для них, а значение HMAC-SHA-256 совпадает с тем, что печатает RFC: 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843.

Алгоритм Шестнадцатеричная запись Base64
HMAC-SHA-1 effcdf6ae5eb2fa2d27416d5f184df9c259a7c79 7/zfauXrL6LSdBbV8YTfnCWafHk=
HMAC-SHA-256 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843 W9zBRr9gdU5qBCQmCJV1x1oAPwidJzmDnexYuWTsOEM=
HMAC-SHA-384 af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649 r0XS43ZIQDFhf3jStYprG5x+9GT1oBtH5C7Dc2MiRF6OIkDKXmnix4syOez6shZJ
HMAC-SHA-512 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737 Fkt6e/z4GeLjlfvnO1bgo4e9ZCIugx/WECcM1+olBVSXWL91wFqZSm0DT2X48Ob9yuqxo01Ka0tjbgcKOLznNw==

Частые вопросы

HMAC — это то же самое, что шифрование сообщения?

Нет. HMAC не скрывает сообщение, поэтому его может прочитать каждый. Он показывает, что сообщение не менялось и что отправитель знает ключ. Для секретности нужно шифрование.

В чём разница между хешем и HMAC?

Хеш зависит только от сообщения, поэтому вычислить его может каждый. HMAC также требует секретного ключа, поэтому создать или проверить его может только тот, у кого есть ключ. Для обычных хешей используйте генератор хешей.

Почему мой HMAC отличается от того, что выдаёт моя библиотека?

Отличаются ключ или байты сообщения. Ключ, введённый как текст, — это его байты UTF-8, а те же буквы, записанные в шестнадцатеричном виде, — другие байты. Перенос строки в конце сообщения тоже меняет HMAC.

Какой длины должен быть ключ?

Используйте случайный ключ не короче выхода хеш-функции: 32 байта для HMAC-SHA-256. RFC 2104 настоятельно не рекомендует более короткий ключ, а ключ из слов или короткой фразы легко угадать.

Можно ли проверить подпись вебхука на этой странице?

Да, если вы используете точно те байты, которые были подписаны. Подписи вебхуков обычно вычисляются по исходному телу запроса, поэтому вставляйте тело без изменений: JSON, отформатированный заново, даёт другой HMAC.

Ключ или сообщение куда-нибудь отправляются?

Нет. HMAC считается в вашем браузере встроенной функцией SubtleCrypto. Ключ и сообщение не загружаются и не сохраняются.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.