Декодер JWT
Вставьте JWT, чтобы декодировать заголовок и payload, увидеть срок действия и проверить стандартные клеймы. Декодирование происходит полностью в браузере, поэтому токены доступа из продакшена никогда не покидают ваше устройство.
- Файлы никогда не покидают ваше устройство
- Бесплатно, без регистрации
- Без водяных знаков
- Работает офлайн после загрузки
Как пользоваться: декодер jwt
- 1
Вставьте ваш токен
Вставьте полный JWT, включая обе точки. Он декодируется по мере ввода.
- 2
Прочитайте клеймы
Заголовок и payload форматируются, а срок действия и время выпуска показаны как читаемые даты.
- 3
Скопируйте нужное
Скопируйте декодированный payload в виде JSON для использования в другом месте.
Что на самом деле представляют собой три части JWT
JSON Web Token — это три сегмента, закодированных в Base64URL и соединённых точками: заголовок, описывающий алгоритм подписи и тип токена, payload, содержащий сами клеймы — кого идентифицирует токен, когда он истекает, какие права даёт, — и подпись, вычисленная по первым двум сегментам с помощью секрета или приватного ключа. Декодирование, которым занимается этот инструмент, означает Base64URL-декодирование первых двух сегментов обратно в читаемый JSON; о третьем сегменте инструмент не говорит ничего, кроме как показывает его исходное закодированное значение, потому что для проверки подписи нужен настоящий секрет подписи, а инструмент в браузере никогда не должен просить вас его вставить.
Это различие — декодирование против проверки — самое важное, что нужно понимать об инструменте для отладки JWT. Декодирование показывает, что токен *утверждает*; проверка показывает, можно ли этим утверждениям доверять, подтверждая, что подпись создана ожидаемым издателем. Токен может прекрасно декодироваться и показывать payload с заявлением о правах администратора, будучи при этом полностью поддельным, если никто и никогда не сверяет подпись с настоящим ключом подписи.
Почему JWT — не место для чувствительных данных
Заголовок и payload закодированы, а не зашифрованы — Base64URL является обратимым преобразованием без какого-либо секрета, поэтому любой, кто получит токен — перехватив сетевой трафик, прочитав хранилище браузера или получив его напрямую, — может декодировать payload и прочитать каждый клейм внутри без какого-либо ключа. Именно поэтому стандартная рекомендация — ограничивать payload JWT идентификаторами и нечувствительными клеймами: ID пользователя, роль, время истечения — и никогда не помещать пароль, номер банковской карты или другие конфиденциальные данные напрямую в токен, потому что формат токена сам по себе не обеспечивает никакой конфиденциальности.
Как читать exp, iat и nbf, не занимаясь арифметикой вручную
Стандартные клеймы времени хранятся как Unix-время — обычное целое число, считающее секунды с 1 января 1970 года, — что удобно для сравнения машинами, но нечитаемо с первого взгляда для человека, отлаживающего токен глазами. Перевести `1735689600` в «1 января 2025, 00:00:00 UTC» вручную — это как раз тот вид мелкой, подверженной ошибкам арифметики, которую легко сделать неправильно под давлением времени, особенно при работе с разными часовыми поясами. Отображение всех трёх клеймов как настоящих локальных дат и прямое указание, истёк ли токен, действителен ли он сейчас или ещё не активен, превращает отладочную сессию, которая иначе потребовала бы побочных вычислений, в мгновенный читаемый ответ.
Часто задаваемые вопросы
Безопасно ли вставлять сюда токен из продакшена?
Безопаснее, чем в любом декодере на основе сервера: токен разбивается на части и декодируется из Base64 прямо в браузере, без единого сетевого запроса. Это легко проверить, отключившись от интернета, — инструмент продолжит работать. Тем не менее любой токен, который вы куда-либо вставляете, стоит считать подлежащим ротации.
Проверяется ли подпись?
Нет, и это сознательное решение. Для проверки нужен секрет подписи или публичный ключ, а инструмент в браузере, просящий вставить секрет подписи, — плохая привычка, которую не стоит поощрять. Проверке место в вашем бэкенде, а не на веб-странице.
JWT зашифрован?
Нет. Заголовок и payload закодированы в Base64URL — это кодирование, а не шифрование: любой, у кого есть токен, может прочитать каждый клейм. Никогда не кладите в payload JWT пароли, номера карт или персональные данные.
Что означают exp, iat и nbf?
Это Unix-время в секундах. `exp` — момент истечения токена, `iat` — момент выпуска, а `nbf` — самый ранний момент, когда токен может быть принят. Инструмент отображает все три как локальные даты и сообщает, действителен ли токен прямо сейчас.
Почему мой токен не декодируется?
JWT должен состоять ровно из трёх частей, разделённых точками. Обычные причины — обрезанная копия, оставшийся префикс «Bearer », или обрамляющая кавычка из JSON-ответа.
Вам также может понадобиться
Кодировщик и декодировщик Base64
Кодирование и декодирование Base64 и Base64URL
Форматтер JSON
Мгновенное форматирование, валидация и минификация JSON
Генератор хешей
MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Форматировщик CSS
Форматирование и минификация таблиц стилей
Минификатор CSS
Сжимайте таблицы стилей настоящим минификатором, понимающим CSS
Форматировщик HTML
Аккуратное форматирование и расстановка отступов в HTML
Форматировщик JavaScript
Форматирование JS и TypeScript настоящим парсером
Минификатор JS
Сжимайте JavaScript настоящей минификацией, а не регулярными выражениями