tomai
Войти
Бесплатно · Инструменты разработчика

Декодер и верификатор JWT

Декодируйте JSON Web Token и проверяйте подписи HS/RS/ES/PS — полностью в браузере

Закодированный токен
ЗАГОЛОВОК
НАГРУЗКА

Что такое декодер JWT?

JWT (JSON Web Token) — это токен из трёх частей — заголовка, полезной нагрузки и подписи, — используемый для аутентификации и авторизации в современных веб-приложениях. Полезная нагрузка выглядит как случайный текст, пока её не декодируешь, — именно это и делает инструмент. Он превращает заголовок и полезную нагрузку в читаемый, аккуратно отформатированный JSON, объясняет зарегистрированные утверждения вроде exp, nbf и iat простым языком с реальными датами и показывает, истёк ли токен, активен ли он или ещё не вступил в силу. Инструмент умеет проверять подписи: HS256/384/512 — общим секретом, RS/PS/ES — открытым ключом PEM, всё через Web Crypto внутри браузера. Для разработчиков, отлаживающих сценарии входа, это замена привычке вставлять продакшн-токены в сторонние сайты.

Что умеет этот инструмент

  • 📖 Декодировать заголовок и полезную нагрузку в форматированный JSON
  • 🏷️ Объяснять зарегистрированные утверждения простым языком
  • ⏳ exp, nbf и iat: точная дата плюс относительное время
  • ✅ Проверка подписи HS256/384/512 секретом
  • 🔏 Проверка подписи RS/PS/ES открытым ключом PEM
  • 🚦 Статус-бейдж: истёк, активен или ещё не вступил в силу
  • ⚠️ Предупреждение, если alg равен none — то есть токен не защищён

Когда пригодится

  • Когда разбираетесь, почему во входе возникает ошибка 401
  • Когда выясняете, почему токен внезапно перестал работать
  • Когда проверяете токен стороннего провайдера удостоверений перед доверием
  • Когда хотите посмотреть, какие утверждения лежат внутри refresh-токена

Конфиденциальность: токены и ключи обрабатываются полностью в браузере и никуда не отправляются, поэтому вставлять реальные продакшн-учётные данные безопасно.

Что представляют собой три сегмента

JWT состоит из трёх сегментов в кодировке base64url, разделённых точками:

  • Заголовок указывает алгоритм; полезная нагрузка содержит утверждения (claims); подпись связывает оба сегмента с помощью секрета или ключа.
  • Ничто в заголовке или полезной нагрузке не зашифровано — любой, кто владеет токеном, может прочитать все утверждения. Это задумано так по архитектуре: JWT — это подписанный контейнер, а не средство защиты.
  • Проверка требует наличия ключа для подписи и выполняется на вашем сервере; эта страница раскодирует токен локально, чтобы вы могли изучить утверждения, не передавая токены на удалённые ресурсы.

Раскодирование — это не проверка

Клеймы становятся реальными датами

Заголовок и полезная нагрузка выводятся читаемым JSON, а зарегистрированные клеймы вроде exp, nbf и iat превращаются в настоящие даты, с чётким вердиктом: истёк, активен или ещё не действует.

🔒

Проверка HS, RS, PS и ES

HS256/384/512 проверяются общим секретом в текстовой или base64 форме, а токены RS, PS или ES — открытым ключом PEM, всё через Web Crypto прямо на странице.

🎯

Понятные объяснения неверных токенов

Структурные проблемы сообщаются точно — пропущенная точка, неверный заголовок, нечитаемая нагрузка — а токены с заявленным алгоритмом none помечаются, а не доверяются.

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

Отправляется ли мой токен на сервер?

Нет. Декодирование и проверка подписи выполняются полностью в браузере через Web Crypto API. Ваш токен, секрет и ключи никогда не покидают устройство, поэтому можно безопасно проверять рабочие токены.

Какие алгоритмы подписи можно проверить?

HS256/384/512 с общим секретом (UTF-8 или base64url), а также асимметричные семейства RS256/384/512, PS256/384/512 и ES256/384/512 — вставьте открытый ключ PEM. Для асимметричных токенов нужен только открытый ключ, приватный не требуется.

JWT не шифруется — что это значит?

Стандартный JWT только закодирован в base64url и подписан, но не зашифрован, поэтому любой может прочитать его нагрузку. Никогда не помещайте секреты в JWT. Подпись лишь доказывает, что токен не был изменён тем, у кого нет ключа.

В сообщении указано «недопустимая подпись» — токен подделан?

Обычно одна из трёх банальных причин: токен подписан секретом другого окружения; издатель периодически обновляет ключи, а у вас устаревший ключ; или алгоритм в заголовке не совпадает с тем, который ожидает ваша система проверки (известный трюк с alg=none). Сначала раскодируйте заголовок здесь, затем сравните его с ключом, который фактически использует ваш бэкенд.

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

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