Перейти к содержанию
TextArray
100% локально

HMAC-генератор

Вычислите подписи HMAC-SHA256, SHA-1, SHA-384 или SHA-512 с помощью секретного ключа.

Входные данные
Выходные данные

HMAC-генератор

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

Введите секретный ключ, выберите алгоритм, который использует другая сторона (по умолчанию используется SHA-256), и вставьте сообщение. Дайджест отображается в шестнадцатеричном виде в нижнем регистре или в формате Base64, что соответствует двум форматам, в которых происходит обмен подписями. Включите HMAC для каждой строки, чтобы подписывать каждую входную строку отдельно, что соответствует столбцу токенов или идентификаторов. Разработчики достигают этого при отладке обработчика веб-перехватчика, который отклоняет подписи, воспроизводит пример документации или генерирует тестовый вектор для модульного теста.

И ключ, и сообщение воспринимаются как байты UTF-8, точно так же, как это делается в большинстве серверных SDK. Когда ваш результат не соответствует другой стороне, причиной почти всегда являются байты, а не математические вычисления: завершающая новая строка в полезных данных, окончания строк CRLF, шестнадцатеричный вывод по сравнению с Base64 или ключ, который служба предоставляет в кодировке Base64 или шестнадцатеричном коде и ожидает декодирования перед использованием.

Ключевое поле замаскировано и намеренно никогда не записывается в память вашего браузера. Все работает локально через встроенный в браузер WebCrypto — вставка секрета подписи в онлайн-инструмент HMAC обычно передает его на этот сервер, и здесь он никогда не покидает ваше устройство.

FAQ

Для чего используется HMAC?
Доказательство того, что сообщение пришло от кого-то, кто владеет общим секретом и не было изменено в процессе. Типичное использование: подписание запросов API, проверка доставки веб-перехватчиков с платежных и хостинговых платформ, а также подписание токенов. Приемник пересчитывает HMAC с тем же ключом и сравнивает.
Чем HMAC отличается от обычного хеша?
Простой SHA-256 сообщения может быть вычислен кем угодно, поэтому он ничего не доказывает об отправителе. HMAC смешивает секретный ключ с вычислениями таким образом, чтобы предотвратить подделку — без ключа вы не сможете ни подделать действительную подпись, ни проверить ее. Именно поэтому HMAC-SHA1 остается приемлемым на практике, хотя простой SHA-1 не работает из-за коллизий, хотя в новых разработках все равно следует выбирать SHA-256.
Почему мой HMAC не соответствует тому, который отправляет сервер?
Почти всегда байты различаются. Проверьте наличие завершающей новой строки в полезных данных, окончаний строк CRLF и LF, шестнадцатеричного сравнения с Base64 и формата ключа — многие службы передают вам секретный код в формате Base64 или шестнадцатеричном коде и ожидают декодированные байты в качестве ключа. Этот инструмент использует ключ точно так же, как и UTF-8.
Может ли кто-нибудь восстановить мой ключ из HMAC?
Ни одна практическая атака не может восстановить ключ из дайджестов. Но любой, у кого есть ключ, может подписывать произвольные сообщения, поэтому относитесь к секретам подписи как к паролям: меняйте секрет веб-перехватчика, если он мог утечь, и никогда не сохраняйте его в хранилище.
Загружен ли где-нибудь мой ключ и текст?
Нет. HMAC вычисляется встроенным WebCrypto вашего браузера, поле ключа никогда не записывается в хранилище, и ни ключ, ни текст никогда не покидают ваше устройство.