Онлайн генератор HMAC — SHA-2, SHA-3, BLAKE2, Стрибог ГОСТ и SM3

Генерация имитовставок и кодов аутентификации сообщений (HMAC) на базе криптографических хеш-функций. Поддерживаются стандарты JWT (HS256/HS512), AWS SigV4, ГОСТ Р 34.11-2012, китайский стандарт SM3, BLAKE2 и SHA-3. Все вычисления производятся исключительно в браузере.

Ключ обрабатывается в кодировке UTF-8. Рекомендуется использовать криптографически стойкий секрет длиной не менее размера блока хеш-функции.

HMAC-SHA-256 —
HMAC-SHA-512 —
HMAC-SHA-384 —
HMAC-SHA-224 —
HMAC-SHA3-256 —
HMAC-SHA3-512 —
HMAC-SHA3-384 —
HMAC-SHA3-224 —
HMAC-BLAKE2b-512 —
HMAC-BLAKE2b-256 —
HMAC-BLAKE2s-256 —
HMAC-MD5 —
HMAC-SHA-1 —
HMAC-RIPEMD-160 —
HMAC-Streebog-256 —
HMAC-Streebog-512 —
HMAC-SM3 —
HMAC-Whirlpool —

Как устроен HMAC (RFC 2104)

HMAC (Keyed-Hash Message Authentication Code) — это механизм аутентификации сообщений, объединяющий секретный ключ с криптографической хеш-функцией. Он обеспечивает как проверку целостности данных, так и подтверждение подлинности источника: никто без знания секретного ключа не может сгенерировать валидный код.

HMAC(K, m) = H( (K ⊕ opad) ‖ H( (K ⊕ ipad) ‖ m ) )

Семейство SHA-2 (Стандарт индустрии)

HMAC-SHA-256

256 бит

Отраслевой стандарт аутентификации: основа JWT (HS256), подписей AWS Signature V4, Telegram initData и вебхуков Stripe / GitHub.

HMAC-SHA-512

512 бит

Высоконадежный 512-битный MAC. Оптимален для критических банковских API, JWT HS512 и систем с повышенными требованиями к защите.

HMAC-SHA-384

384 бит

Промежуточная версия SHA-2 с усеченным состоянием, применяемая в правительственных протоколах Suite B и TLS 1.3.

HMAC-SHA-224

224 бит

Компактная 224-битная версия SHA-2 для протоколов с ограниченным размером пакета и устаревших систем.

Семейство SHA-3 (Архитектура Sponge)

HMAC-SHA3-256

256 бит

Стандарт NIST на базе Keccak с защитой от атак удлинением сообщения (length extension), идеален для современных смарт-контрактов.

HMAC-SHA3-512

512 бит

512-битная подпись максимальной криптостойкости для долгосрочной валидации сообщений.

HMAC-SHA3-384

384 бит

384-битная имитовставка SHA-3, гармонизированная с криптонаборами симметричного шифрования AES-192.

HMAC-SHA3-224

224 бит

224-битный дайджест SHA-3, защищающий данные при минимальных накладных расходах.

Семейство BLAKE2 (Высокая скорость)

HMAC-BLAKE2b-512

512 бит

HMAC на базе 64-битного BLAKE2b: обеспечивает производительность выше MD5 при безопасности уровня SHA-3.

HMAC-BLAKE2b-256

256 бит

BLAKE2b с выходом 256 бит: максимальная скорость на современных 64-битных CPU при компактном размере подписи.

HMAC-BLAKE2s-256

256 бит

32-битная версия BLAKE2, спроектированная специально для микроконтроллеров и IoT-устройств.

Устаревшие алгоритмы и RIPEMD

HMAC-MD5

128 бит

HMAC-MD5 (RFC 2104). Хотя исходный MD5 взломан коллизиями, HMAC-MD5 теоретически устойчив, но крайне не рекомендуется для новых систем.

HMAC-SHA-1

160 бит

HMAC-SHA-1 применяется в унаследованных протоколах: OAuth 1.0a, TOTP/HOTP (двухфакторная аутентификация) и AWS SigV2.

HMAC-RIPEMD-160

160 бит

160-битный европейский криптостандарт. Широко применяется в архитектуре адресов Bitcoin и блокчейн-протоколах.

Специализированные и национальные стандарты

HMAC-Streebog-256 (GOST R 34.11-2012)

256 бит

HMAC на базе российского стандарта ГОСТ Р 34.11-2012 (Стрибог 256 бит). Используется в протоколах ЕАЭС и госсекторе.

HMAC-Streebog-512 (GOST R 34.11-2012)

512 бит

512-битная имитовставка по ГОСТ Р 34.11-2012 для государственной криптографической защиты данных высшей категории.

HMAC-SM3 (GB/T 32918)

256 бит

Китайский национальный криптографический стандарт GB/T 32918. Обязателен для коммерческих криптосистем и платежей в КНР.

HMAC-Whirlpool

512 бит

512-битный MAC на базе блочного шифра W (модификация AES) от Винсента Рэймена и Пауло Баррето.

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

Что такое HMAC и зачем он нужен?

HMAC (Hash-based Message Authentication Code) подтверждает, что сообщение пришло от доверенной стороны и не было изменено третьими лицами в процессе передачи. В отличие от обычного хеша, для вычисления HMAC необходим секретный ключ.

В чем разница между SHA-256 и HMAC-SHA256?

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

Какой алгоритм HMAC выбрать для нового проекта?

Для подавляющего большинства систем стандартом де-факто является HMAC-SHA-256 (JWT, API вебхуки). Если требуется максимальный уровень безопасности — используйте HMAC-SHA-512 или HMAC-SHA3-256. HMAC-SHA-1 и HMAC-MD5 следует использовать только для обратной совместимости со старыми протоколами.

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

Длина ключа должна быть не меньше размера дайджеста выбранной хеш-функции. Для HMAC-SHA256 минимальная рекомендуемая длина ключа — 32 случайных байта (256 бит). Ключи длиннее размера блока хеша предварительно хешируются алгоритмом.

Защищает ли HMAC от атак удлинением сообщения (Length Extension)?

Да. Наивное склеивание H(key + message) уязвимо для атак удлинения в Merkle-Damgård хешах (MD5, SHA-1, SHA-256). Конструкция HMAC с двойным циклом хеширования H(K ⊕ opad || H(K ⊕ ipad || message)) математически исключает эту уязвимость.

Где HMAC применяется на практике?

В токенах JWT (алгоритмы HS256/HS384/HS512), подписании API-запросов AWS SigV4, вебхуках платежных шлюзов (Stripe, CloudPayments), двухфакторной аутентификации TOTP/HOTP (RFC 6238), протоколах IPsec и TLS PRF.

Что такое HMAC-Стрибог (ГОСТ)?

Это алгоритм вычисления имитовставки на основе отечественной хеш-функции ГОСТ Р 34.11-2012 (Стрибог). Применяется в защищенном документообороте и криптографических протоколах государственных систем РФ.

Где востребован китайский стандарт HMAC-SM3?

SM3 — официальный государственный стандарт КНР (GB/T 32918). Он обязателен для интеграции с китайскими банковскими шлюзами, платежными системами (UnionPay) и государственными информационными платформами.

Передаются ли секретный ключ или данные на ваш сервер?

Нет. Все вычисления производятся исключительно в браузере клиента на JavaScript и WebAssembly. Ваши секретные ключи и сообщения никогда не покидают устройство.

Связанные инструменты

Все операции выполняются локально в браузере.