JWT Tools — декодирование, проверка и подпись

Декодируйте JWT, проверяйте подписи HS, RS и ES с помощью секрета или открытого ключа PEM и подписывайте новые токены HS — полностью в вашем браузере.

Загрузка инструмента…

JWT Tools — декодирование, проверка и подписьУниверсальный набор инструментов для JSON Web Token с тремя режимами — декодирование, проверка и подпись. Декодирование красиво форматирует заголовок и полезную нагрузку токена, проверка сверяет подпись с помощью секрета HMAC (HS256/384/512) или открытого ключа PEM (RS256/384/512, ES256/384/512), а подпись создаёт новый токен с подписью HS из вашего заголовка, полезной нагрузки и секрета. Каждая операция выполняется полностью на стороне клиента через встроенный в браузер Web Crypto API, поэтому токены, секреты и ключи никогда не покидают ваше устройство.

Что такое JWT Tools — декодирование, проверка и подпись?

JWT Tools — это бесплатная универсальная утилита для JSON Web Token, объединяющая декодер, проверку подписи и подписчик HS в одном месте. В режиме декодирования она декодирует токен header.payload.signature из base64url и красиво выводит заголовок и полезную нагрузку в виде форматированного JSON. В режиме проверки она считывает alg из заголовка токена и сверяет подпись с помощью Web Crypto API: общий секрет HMAC для HS256, HS384 и HS512 или открытый ключ в формате PEM для RS256/RS384/RS512 (RSASSA-PKCS1-v1_5) и ES256/ES384/ES512 (ECDSA). В режиме подписи она создаёт и подписывает с помощью HMAC совершенно новый токен из заголовка JSON, полезной нагрузки JSON, выбранного алгоритма HS и секрета. Она создана для backend- и frontend-инженеров, QA-тестировщиков и интеграторов API, которые отлаживают аутентификацию, сессии OAuth/OIDC и срок действия токенов, не вставляя секреты в удалённый сервис.

Как пользоваться JWT Tools — декодирование, проверка и подпись

  1. Выберите режим вверху: декодирование, проверка или подпись.
  2. Декодирование: вставьте JWT (header.payload.signature) в поле токена и прочитайте красиво отформатированные заголовок и полезную нагрузку ниже — проверка подписи здесь не выполняется.
  3. Проверка: вставьте токен, затем вставьте секрет HMAC (для алгоритмов HS) или открытый ключ PEM (для RS/ES) в поле ключа; инструмент считывает alg из заголовка и показывает зелёный результат «действительна» или красный «недействительна».
  4. Подпись: введите заголовок JSON и полезную нагрузку JSON, выберите HS256, HS384 или HS512, введите свой секрет и скопируйте только что подписанный токен, который появится.
  5. Используйте кнопку «Копировать» для любого вывода или «Очистить», чтобы сбросить ввод декодирования.

Примеры

Декодировать токен

Ввод

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.sig

Вывод

Header:
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload:
{
  "sub": "1234"
}

Проверить токен HS256

Ввод

token: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.<sig>
secret: your-256-bit-secret

Вывод

valid (HS256)

Подписать новый токен HS256

Ввод

header: {}
payload: { "sub": "1234567890", "name": "Jane Doe" }
secret: your-256-bit-secret

Вывод

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIn0.<signature>

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

Загружаются ли мои токены, секреты и ключи куда-либо?
Нет. Каждый режим работает полностью на стороне клиента в вашем браузере, используя встроенный Web Crypto API (crypto.subtle) для HMAC и проверки подписи, а также base64url и JSON в JavaScript. Ничто — ни токен, ни секрет, ни ключ PEM — никогда не отправляется на какой-либо сервер, что делает безопасной работу с продакшен-учётными данными.
Какие алгоритмы он может проверять?
Проверка поддерживает HS256, HS384 и HS512 с общим секретом HMAC, а также RS256/RS384/RS512 (RSASSA-PKCS1-v1_5) и ES256/ES384/ES512 (ECDSA) с открытым ключом в формате PEM. Он автоматически считывает поле alg из заголовка токена, поэтому вам достаточно предоставить соответствующий секрет или открытый ключ.
Какими алгоритмами он может подписывать?
Режим подписи создаёт только токены с подписью HMAC — HS256, HS384 или HS512 — из вашего заголовка JSON, полезной нагрузки JSON и секрета. Для подписи RSA и ECDSA нужен закрытый ключ, и это выходит за рамки данного инструмента; для RS/ES вы по-прежнему можете выполнить проверку с соответствующим открытым ключом в режиме проверки.
Проверяет ли подпись режим декодирования?
Нет. Декодирование лишь декодирует из base64url и красиво выводит заголовок и полезную нагрузку — оно никогда не проверяет подпись. Переключитесь в режим проверки и укажите секрет или открытый ключ, чтобы подтвердить подлинность токена, и никогда не доверяйте декодированной полезной нагрузке, пока её подпись не проверена.
Почему проверка сообщает о недействительности или ошибке?
«Недействительна» означает, что подпись не совпала с предоставленным вами секретом или ключом. «Ошибка», напротив, означает, что ввод не удалось обработать — например, у токена отсутствует сегмент подписи, alg не поддерживается или не удалось разобрать открытый ключ PEM. Убедитесь, что вы вставили полный токен и правильный ключ для его алгоритма.

Похожие инструменты