Что такое Генератор HMAC?
Генератор HMAC создаёт коды аутентификации сообщений на основе хеша с ключом, используя секретный ключ и алгоритм хеширования (SHA-256, SHA-512 и др.). HMAC проверяет как целостность данных, так и их подлинность; широко применяется в аутентификации API, подписях вебхуков и JWT-токенах.
HMAC примешивает к хешу секретный ключ — проверить подпись может только тот, кто этот ключ знает. Поддерживаются SHA-1, SHA-256, SHA-384 и SHA-512 с выводом в hex, Base64, Base64URL или необработанном двоичном виде, а также шаблоны в один клик для вебхуков GitHub, Stripe, Slack и Shopify, которые сами подставляют нужный алгоритм и префикс заголовка. Сообщение можно ввести обычным текстом или вставить уже закодированным в hex, Base64 или Base64URL — перед подписью оно декодируется в необработанные байты. Счётчик байтов в реальном времени отмечает ключи короче безопасных для продакшена 32 байт, подпись пересчитывается по мере ввода, а поле проверки понимает префиксы sha256= или v0=, которые присылают эти сервисы. Сообщение и ключ обрабатываются на вашем устройстве.
Как использовать
- Шаг 1 — Введите сообщение и секретный ключ.
- Шаг 2 — Выберите шаблон вебхука (GitHub, Stripe, Slack, Shopify) или задайте сами алгоритм хеширования (SHA-1, SHA-256, SHA-384 или SHA-512) и формат вывода (шестнадцатеричный, Base64, Base64URL или двоичный). Чтобы вставить уже закодированные данные, переключите ввод сообщения на Hex или Base64.
- Шаг 3 — Скопируйте сгенерированную HMAC-подпись для использования в заголовках API или верификации вебхуков.
Когда использовать
- Подписывать полезную нагрузку вебхука, чтобы получатель проверил отправителя и целостность.
- Генерировать подписи запросов для AWS Signature Version 4 и подобных API-схем аутентификации.
- Создавать подписи JWT с алгоритмами HS256, HS384 или HS512.
Результат
Ваш платёжный API требует запросы, подписанные HMAC-SHA256. Введите тело запроса как сообщение, секрет API как ключ и скопируйте полученную подпись в заголовок X-Signature.
Частые вопросы
- Чем HMAC отличается от обычного SHA-256 над сообщение+ключ?
- HMAC — это особая конструкция с двойным хешированием и внутренним/внешним дополненным ключом. Она защищает от атак расширения длины, которым подвержены наивные схемы hash(ключ‖сообщение) на SHA-1 или SHA-256.
- Hex или Base64 на выходе?
- По требованию API или провайдера вебхука. Hex обычен в HTTP-заголовках (Stripe, GitHub), Base64 — в JSON-теле и JWT. Подпись одна и та же, отличается только кодирование.
- Какой длины должен быть секретный ключ?
- Минимум 32 байта (256 бит) случайных данных, желательно из криптоисточника. Короче — слабее защита; длиннее размера блока хеша (64 байта для SHA-256) бессмысленно: HMAC всё равно сожмёт ключ внутри.
- Почему моя подпись отличается от той, что прислал API?
- Почти всегда расходится сам подписываемый текст. Пробелы, переводы строк, порядок параметров запроса, URL-кодирование, включение метки времени — всё важно. Воспроизводите рецепт провайдера побайтово.
- HMAC-SHA1 ещё безопасен?
- Для нового кода берите HMAC-SHA256 или сильнее. HMAC-SHA1 формально остаётся безопасным, потому что конструкция HMAC не опирается на стойкость к коллизиям, но полностью уйти с SHA-1 — более разумная долгосрочная позиция.
Похожие инструменты
Генератор PGP-ключей
Генерируйте пары ключей шифрования PGP
Защищённые заметки
Создавайте и храните зашифрованные заметки локально
Шифрование файлов
Зашифруйте файлы с помощью AES-256
Декодер SSL-сертификатов
Декодируйте и проверяйте SSL/TLS-сертификаты
Шифр Цезаря
Шифрование сдвигом с настраиваемым смещением
Генератор парольных фраз
Создавайте надёжные и запоминающиеся парольные фразы