Генератор HMAC-SHA512
Создавайте тег HMAC-SHA512 на основе сообщения и секретного ключа. Инструмент кодирует их в UTF-8, применяет конструкцию HMAC из RFC 2104 с SHA-512 и возвращает результат длиной 512 бит в формате hex или Base64. Используйте его для проверки схем подписания API, например в некоторых API криптовалютных бирж и токенах HS512, а также для сравнения собственной реализации с надежным эталоном. Ключ не попадает в ответ.
Часто задаваемые вопросы
Что такое HMAC-SHA512?
HMAC-SHA512 объединяет хеш SHA-512 с секретным ключом, используя конструкцию HMAC из RFC 2104. Он подтверждает, что сообщение отправлено тем, кто знает ключ, и не было изменено. Тег занимает 64 байта, или 128 hex-символа.
Каков известный тестовый вектор HMAC-SHA512?
В тестовом примере 2 из RFC 4231 используется ключ Jefe и сообщение what do ya want for nothing? Ожидаемый тег — 164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737. Этот инструмент воспроизводит его.
Когда использовать HMAC-SHA512 вместо HMAC-SHA256?
Используйте его, если этого требует API или формат токена, например алгоритм HS512 в веб-токенах JSON. HMAC-SHA256 уже достаточно надежен, а SHA-512 в основном дает более длинный тег и часто работает быстрее на 64-битных машинах.
Как кодируются входные данные?
Сообщение и ключ обрабатываются как текст в UTF-8. Если провайдер передает секрет в формате Base64 или hex и его нужно сначала декодировать, результат здесь будет отличаться от результата провайдера.
Какой длины должен быть ключ?
Случайный ключ длиной 64 байта соответствует размеру выходных данных SHA-512 и подходит для этой цели. Ключи длиной более 128 байт сначала хешируются, а слишком короткие ключи ослабляют защиту.
Секретный ключ остается конфиденциальным?
Да. Ключ используется только в памяти для этого запроса и не включается в ответ. Он не записывается в журнал и не сохраняется.
Можно ли создать с помощью этого инструмента подпись JWT?
Частично. HS512 подписывает заголовок Base64URL, точку и полезную нагрузку Base64URL. Вставьте эту строку в качестве сообщения, выберите формат вывода Base64, замените + на -, / на _ и удалите символы заполнения =, чтобы получить часть подписи JWT.
Почему результат не совпадает?
Чаще всего причина в лишних пробелах или переносах строк в сообщении, в том, что ключ нужно было декодировать из hex или Base64, либо в сравнении hex с Base64. Проверьте каждый байт входных данных.
Можно ли усечь тег HMAC-SHA512?
Некоторые протоколы используют только начальную часть тега, например варианты HMAC-SHA512/256, предусмотренные некоторыми стандартами. Инструмент всегда возвращает полные 64 байта, поэтому, если этого требует ваш протокол, усеките тег самостоятельно.
Каково ограничение на размер входных данных?
Общий размер сообщения и ключа в одном запросе может достигать 5 MiB текста. Этого достаточно для тел запросов API, строк токенов и больших полезных нагрузок вебхуков.