CoderTools

Генератор HMAC

Генерация безопасных кодов аутентификации HMAC с несколькими хеш-алгоритмами

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

* SHA-1 считается небезопасным. ** MD5 криптографически взломан и должен использоваться только для совместимости с устаревшими системами. Используйте SHA-256 или SHA-512 для новых приложений.

О HMAC

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

В отличие от стандартного хэша (как SHA-256), HMAC использует секретный ключ для гарантии подлинности. Широко используется в API (например, AWS Signature v4), JWT и финансовых транзакциях.

Поддерживаемые алгоритмы HMAC

Инструмент поддерживает SHA-256, SHA-512, SHA-384, SHA-224, современные варианты SHA-3, а также устаревшие MD5 и SHA-1. Формула: HMAC(K, m) = H((K' ⊕ opad) || H((K' ⊕ ipad) || m)).

Общие варианты использования

Аутентификация API-запросов и проверка подписи
Подпись JWT (JSON Web Token) с помощью HS256/HS384/HS512
Проверка полезной нагрузки Webhook
Получение ключа на основе пароля (PBKDF2)
Проверка целостности сообщений в безопасных коммуникациях

Соображения безопасности

Безопасность зависит от секретного ключа. Сила ключа: Ключ должен быть случайным и длиной не менее выхода хэша (32 байта для SHA-256). Выбор алгоритма: Используйте SHA-256 или SHA-512. Избегайте MD5 и SHA-1.

Пример

Сообщение: "Hello, World!"

Секретный ключ: "secret-key-2025"

Алгоритм: HMAC-SHA256

Вывод:

e4d7f1b4c4e5a8d3e...

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

В чем разница между Hash и HMAC?

Hash (как SHA-256) может вычислить кто угодно. HMAC использует хэш *плюс* секретный ключ. Только владелец ключа может создать или проверить HMAC.

Почему не использовать просто Hash(Ключ + Сообщение)?

Простая конкатенация уязвима для 'атак удлинения сообщения' (Length Extension Attack) в MD5/SHA-1. Структура HMAC предотвращает это.

Можно ли расшифровать HMAC?

Нет. HMAC — это хэш-функция, а не шифрование. Она односторонняя.

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

RFC 2104 рекомендует длину, равную длине выхода хэша (например, 32 байта для SHA-256).

Можно ли использовать для паролей?

Для паролей лучше использовать специализированные функции (KDF), такие как PBKDF2, bcrypt или Argon2.

Безопасен ли мой ключ здесь?

Да. Инструмент работает полностью на стороне клиента (в браузере). Ключ не отправляется на сервер.

Быстрое меню

Нет недавних инструментов