Руководство

Как сгенерировать HMAC для текста с секретным ключом и выбрать алгоритм

Введите текст и обязательный секретный ключ, выберите SHA-256 или SHA-512 и получите HMAC в шестнадцатеричном виде. Текст можно оставить пустым.

Инструмент Генератор HMAC

Введите текст, укажите секретный ключ, выберите SHA-256 или SHA-512 и запустите генерацию. Инструмент вернёт HMAC в шестнадцатеричном виде. Секрет обязателен, а текст можно оставить пустым.

Обзор генератора

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

Для расчёта нужны текст, секрет и алгоритм. В SmartPlusLab доступны два варианта: SHA-256 и SHA-512. По умолчанию выбран SHA-256. Один и тот же набор из текста, секрета и алгоритма всегда даёт одинаковый HMAC. Если изменить хотя бы один символ, результат изменится.

Поле текста можно оставить пустым, и тогда HMAC будет рассчитан для пустой строки. Поле секрета обязательно. Инструмент не подставляет запасной ключ и возвращает ошибку, если секрет не указан.

Порядок действий

  1. Вставьте строку, для которой нужно получить HMAC. Это может быть тело запроса, идентификатор заказа, тестовое сообщение или пустая строка.
  2. Введите секретный ключ. Для реальной интеграции используйте ключ, который хранится отдельно от передаваемых данных и недоступен посторонним.
  3. Выберите SHA-256 или SHA-512. Если специального требования нет, можно оставить SHA-256, выбранный по умолчанию.
  4. Запустите генерацию.
  5. Скопируйте полученное шестнадцатеричное значение и используйте его там, где другая сторона рассчитывает HMAC по тем же данным, ключу и алгоритму.

При проверке важна точность. Пробел в конце строки, другой регистр букв, иная кодировка текста или выбор другого алгоритма приведут к другому результату.

Толкование результата

Для SHA-256 инструмент возвращает 64 шестнадцатеричных символа, а для SHA-512 результат содержит 128 символов. Длина зависит от выбранного алгоритма, но сама по себе не подтверждает правильность ключа или текста.

Чтобы проверить подпись, принимающая сторона должна отдельно рассчитать HMAC для исходного сообщения с тем же секретом и алгоритмом, а затем безопасно сравнить значения. Совпадение означает, что данные и параметры расчёта совпали. Несовпадение может быть вызвано изменением текста, другим ключом, другим алгоритмом или даже лишним пробелом.

HMAC нельзя использовать для восстановления исходного сообщения. Также он не заменяет защищённое хранение ключей и передачу данных по безопасному соединению.

Практический пример

Допустим, нужно проверить подпись тестового идентификатора заказа.

Введите текст order-742, задайте учебный секрет demo-key, выберите SHA-256 и запустите генерацию. Затем измените текст на order-743, не меняя секрет и алгоритм. Второй HMAC будет отличаться от первого, потому что изменилась исходная строка.

Для проверки повторите расчёт с первоначальным текстом order-742, тем же секретом и SHA-256. Результат должен совпасть с первым значением. Учебный ключ из примера не следует использовать в реальном проекте.

Ограничения

  • Доступны только SHA-256 и SHA-512. Произвольное название алгоритма ввести нельзя.
  • Без секретного ключа расчёт не выполняется.
  • Инструмент создаёт HMAC, но не шифрует текст и не управляет хранением секретов.
  • Не вставляйте рабочие ключи в среду, которой не доверяете. Для отладки лучше использовать отдельные тестовые значения.

Частые ошибки

  • Оставить поле секрета пустым. В этом случае инструмент вернёт ошибку, а HMAC не будет создан.
  • Выбрать SHA-256 при проверке значения, которое было рассчитано с SHA-512, или наоборот.
  • Незаметно изменить исходный текст: добавить перевод строки, пробел или изменить регистр символов.
  • Считать HMAC способом скрыть содержимое сообщения. Он предназначен для проверки целостности и подлинности, а не для шифрования.

Частые вопросы

Что произойдёт, если оставить текст пустым?

HMAC будет рассчитан для пустой строки, если указан секретный ключ. Пустая строка является допустимым сообщением и даёт обычное непустое значение HMAC.

Можно ли оставить поле секрета пустым?

Нет. Секрет обязателен. Если его не указать, инструмент сообщит об ошибке и не выполнит расчёт.

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

Выберите SHA-256 или SHA-512 в списке. Для совместимости обе стороны должны использовать один и тот же алгоритм. Если специальных требований нет, можно оставить SHA-256, выбранный по умолчанию.

Инструмент

Генератор HMAC