Декодер JWT
Декодируйте JSON Web Token и читайте его заголовок, полезную нагрузку и утверждения в удобном виде с мгновенной проверкой, не истёк ли токен. Декодирование
Вставьте JSON Web Token и прочитайте его три части в удобном виде: заголовок с алгоритмом подписи, полезную нагрузку с утверждениями и человекочитаемые метки времени для выдачи, начала действия и истечения. Инструмент сразу сообщает, истёк ли токен и когда это произойдёт.
Это повседневный шаг отладки, когда API возвращает 401 и нужно понять, в чём дело — в подписи, в аудитории или просто в истёкшем токене. Всё декодируется в вашем браузере, поэтому рабочие токены никуда не отправляются.
Как декодировать JSON Web Token
Вставьте токен
Прочитайте заголовок, полезную нагрузку и срок действия
При необходимости скопируйте JSON полезной нагрузки
Частые вопросы
Проверяется ли здесь подпись?
Нет, и это важно. При декодировании части только декодируются из base64url, поэтому содержимое читаемо, но его подлинность не доказана. Никогда не считайте декодированный токен доверенным, пока ваш сервер не проверил подпись.
Как понять, что срок действия токена истёк?
Утверждение exp — это метка времени Unix в секундах, и инструмент сравнивает её с текущим временем, показывая дату и то, действителен ли ещё токен.
Чем отличаются exp, iat и nbf?
iat — это время выдачи токена, nbf — самое раннее время, когда его можно использовать, а exp — время, когда он перестаёт быть действительным. Токен приемлем только между nbf и exp.
Безопасно ли вставлять сюда настоящий токен?
Декодирование происходит полностью в вашем браузере, поэтому токен никуда не передаётся. И всё же относитесь к любому токену как к учётным данным: не вставляйте его на сайт, которому не доверяете, и смените его, если он мог утечь.
Почему мой токен выдаёт ошибку?
У JWT ровно три части, разделённые точками. Отсутствующая часть, перевод строки в середине или токен, который на самом деле является непрозрачным идентификатором сеанса, будут распознаны как не-JWT.
Мой токен куда-то загружается?
Нет, декодирование выполняется локально.
Кратко
| Ввод | текст |
|---|---|
| Несколько файлов | Нет |
| Где работает | В вашем браузере — файлы никуда не загружаются |
| Работает офлайн | Да — после загрузки страницы |
| Цена | Бесплатно, без регистрации, без водяных знаков |
Как безопасно обращаться с секретами
Инструменты для разработчиков обрабатывают учётные данные чаще, чем кажется, и риск связан не с алгоритмом, а с тем, куда уходят данные. Хеширование одностороннее и не является шифрованием: MD5 и SHA-1 сломаны для всего, что связано с безопасностью, и даже SHA-256 — неподходящий инструмент для хранения паролей, для чего bcrypt, scrypt или Argon2 существуют именно потому, что работают медленно. Base64 — это кодирование, а не защита: декодировать его может любой, поэтому никогда не считайте его обфускацией. JWT может прочитать любой, у кого он есть, поэтому полезная нагрузка никогда не должна содержать секретов, а декодирование токена не проверяет его подпись — для проверки нужен ключ. Всё на этом сайте выполняется локально в вашем браузере — именно поэтому он вообще может безопасно работать с токенами и паролями.
Где конвертации незаметно ломаются
Большинство ошибок конвертации — не про синтаксис, а про смысл. Столбец CSV с почтовыми индексами теряет ведущие нули в тот момент, когда таблица решает, что это число; длинный идентификатор выходит за пределы точности чисел с плавающей запятой; даты меняют смысл в зависимости от того, что идёт первым — день или месяц. Ключи JSON не упорядочены, а массивы упорядочены, и инструмент, сортирующий ключи, ничего не меняет, тогда как сортирующий массивы меняет данные. Unicode — ещё одна ловушка: текст может прийти в UTF-8, в UTF-16 или с BOM, и декодер, который угадает неверно, превращает буквы с диакритикой в «кракозябры». Прежде чем доверять любой конвертации, выборочно проверьте первую и последнюю строку, любое поле с ведущими нулями и любое поле, содержащее кавычки, запятые или переводы строк.