Перейти до вмісту

Декодування й перевірка JWT

Розкодуйте заголовок і claims токена JSON Web Token, перевірте строк його дії та підпис — токен не залишає ваш браузер.

Декодування й перевірка відбуваються в цій вкладці — токен і ключі нікуди не надсилаються.

Заголовок, claims і термін дії зʼявляться тут, щойно ви вставите токен.
Працює у браузері · без надсилання на серверЯк це працює

Як користуватися: Декодер JWT

  1. 1

    Вставте токен

    Вставте JWT із заголовка Authorization, cookie або сховища вашого застосунку; початковий «Bearer » ігнорується.

  2. 2

    Прочитайте claims

    Перегляньте таблиці заголовка й payload, зрозумілі значення часу exp, iat і nbf та банер про термін дії.

  3. 3

    Додайте ключ

    Введіть секрет HMAC або вставте публічний ключ у форматі PEM, сертифікат, JWK чи JWKS.

  4. 4

    Перевірте підпис

    Натисніть «Перевірити підпис», щоб переконатися, що токен підписано цим ключем і його не змінювали.

Ліміти та Pro

Безкоштовно, без реєстрації та без обмежень на кількість токенів; перевірка підтримує 13 алгоритмів (HS, RS, PS і ES із 256, 384 і 512 бітами, а також EdDSA).

Pro прибирає рекламу; декодування й перевірка однакові в усіх тарифах. Дивитися Pro

Про інструмент: Декодер JWT

JSON Web Token — це три рядки Base64URL, зʼєднані крапками: заголовок із назвою алгоритму підпису, payload із claims і підпис. Вставте токен (з префіксом «Bearer » або без нього), і декодер покаже заголовок та payload у вигляді зрозумілої таблиці або відформатованого JSON, виділить кольором три частини токена й пояснить стандартні поля, як-от iss, sub, aud, kid і scope.

Часові claims перетворюються автоматично: exp, iat, nbf і auth_time відображаються як дата у вашому часовому поясі, у UTC і як відносний час («спливає через 2 години», «термін дії минув 3 дні тому»). Банер одразу показує, що термін дії токена минув, що він ще не дійсний або що терміну дії немає, і попереджає, якщо значення exp, схоже, вказано в мілісекундах, а не в секундах.

Декодування нічого не каже про те, хто видав токен, тому перевірка підпису виконується вбудованим у ваш браузер WebCrypto. Для HS256, HS384 і HS512 потрібен спільний секрет (звичайний текст або Base64). Для алгоритмів RS, PS і ES із 256, 384 і 512 бітами, а також EdDSA з Ed25519 потрібен публічний ключ. Його можна вставити як публічний ключ PEM, блок RSA PUBLIC KEY, сертифікат X.509, окремий JWK або цілий JWKS, де ключ добирається за kid токена.

Інструмент не розшифровує токени JWE (пʼятичастинні) і не завантажує JWKS за URL: відкрийте jwks_uri емітента самостійно й вставте його JSON.

Приватність

Токени — це облікові дані на предявника, тому сторінка поводиться з ними відповідно: декодування й перевірка підпису виконуються у вашому браузері через WebCrypto, а токен, секрет і ключі ніколи не надсилаються на сервер, не журналюються й не зберігаються. Закриття або перезавантаження вкладки все очищає.

Можливості

Зрозумілий час

exp, iat і nbf у вашому часовому поясі, в UTC і як «через 2 години» або «3 дні тому».

Справжня перевірка підпису

HMAC, RSA, RSA-PSS, ECDSA й Ed25519 перевіряються через WebCrypto за вашим ключем або JWKS.

Токен лишається у вас

Нічого не надсилається на сервер, тож робочі токени можна безпечно досліджувати.

Декодер JWT: поширені запитання

Чи безпечно вставляти сюди робочий токен?
Токен декодує й перевіряє JavaScript у вашій вкладці, жодного запиту з ним не надсилається — це можна підтвердити на панелі мережі браузера. Проте чинний токен до завершення терміну дії працює як пароль, тож не вставляйте актуальні токени на сайти, яким не довіряєте, а для скриншотів беріть прострочені або тестові.
Чому декодований токен нічого не доводить?
Будь-хто може скласти заголовок і payload та закодувати їх у Base64URL; декодування лише відтворює це. Токен із його емітентом повʼязує тільки підпис. Перш ніж довіряти будь-якому claim, перевірте підпис публічним ключем емітента або спільним секретом і переконайтеся, що alg відповідає очікуваному на сервері: прийняття «none» або підміненого алгоритму — класична вразливість.
Де знайти публічний ключ для перевірки токена RS256 або ES256?
Провайдери ідентифікації публікують ключі як набір JWK. Знайдіть /.well-known/openid-configuration емітента, відкрийте вказаний там jwks_uri і вставте цей JSON сюди: буде використано ключ, чий kid збігається із заголовком токена. Також можна вставити публічний ключ PEM або сертифікат X.509 емітента.
Що означають exp, iat і nbf?
Це claims типу NumericDate: кількість секунд від 1 січня 1970 року за UTC. exp — момент, коли токен перестає бути дійсним, iat — коли його видано, nbf — найраніший час, коли його можна приймати. Сервери зазвичай допускають розбіжність годинників у хвилину-дві. Декодер показує кожне значення як локальну дату, мітку UTC і відносний час.
Чому перевірка не проходить, хоча секрет HMAC правильний?
Типові причини: разом із секретом скопійовано пробіли, секрет був закодований у Base64 під час підписання, або токен перекодовано інструментом, який змінив байти заголовка чи payload. Спробуйте перемикач «Секрет закодовано в Base64». Будь-яка зміна перших двох частин, навіть інший порядок ключів JSON, робить підпис недійсним.