JWT декодер

Header и payload токена как JSON, время exp/iat/nbf — сразу как дата.

Инструмент только раскодирует header и payload из base64url — он не проверяет подпись и не знает секретный ключ. Достоверность токена (что он не подделан) можно подтвердить только на сервере, который его выпустил.

Файлы обрабатываются прямо в браузере и никуда не загружаются.

Из чего состоит JWT

JSON Web Token — это три части через точку: header.payload.signature. Header и payload — это JSON, закодированный в base64url (вариант base64 без +, / и без завершающих =, чтобы строка была безопасна для URL). Signature — подпись первых двух частей секретным ключом сервера, она подтверждает, что токен не изменили после выпуска.

Что показывает декодер

Инструмент раскодирует header (алгоритм подписи alg и тип токена) и payload (claims — произвольные поля вроде идентификатора пользователя, ролей, времени выпуска) и печатает их как читаемый JSON. Подпись он не проверяет и проверить не может — для этого нужен секретный ключ или публичный ключ сервера, которого в самом токене нет.

Стандартные claims времени

Три поля payload по стандарту RFC 7519 хранят Unix-время в секундах: iat (issued at) — когда токен выпущен, nbf (not before) — раньше этого момента токен недействителен, exp (expiration) — после этого момента токен просрочен. Инструмент переводит их в обычную дату и сравнивает с текущим временем, показывая «истёк» или «действует».

Безопасность

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

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

Можно ли этим инструментом проверить подлинность токена?
Нет. Декодер только читает base64url и показывает, что записано в header и payload — это доступно любому, у кого есть токен, без секретного ключа. Проверить подпись (что токен не подделан) может только сервер, который знает секрет или публичный ключ.
Почему в payload видны мои данные без пароля?
JWT не шифрует содержимое, а только кодирует его в base64url и подписывает — это защита от подделки, а не от чтения. Поэтому в payload никогда не кладут пароли и секреты: любой человек с токеном прочитает его содержимое, как это делает эта страница.
Что значит «истёк» рядом с exp?
Поле exp хранит момент, после которого сервер обязан отклонять токен как просроченный. Инструмент сравнивает это время с текущим временем в вашем браузере и показывает статус — но именно сервер решает, принять токен или нет.

Обновлено