Безкоштовний конвертер

Токен JWT Декодер

Декодуйте заголовок JWT (JSON Web Token) і корисне навантаження миттєво у вашому браузері. Безкоштовний, приватний і на стороні клієнта — дані не надсилаються на сервери.

Про цей інструмент

Веб-токени JSON (JWT) — це компактний безпечний для URL-адрес формат для передачі претензій між двома сторонами, визначений RFC 7519. JWT — це три сегменти, закодовані за допомогою base64url, розділені крапками: заголовок (алгоритм і тип маркера), корисне навантаження (претензії) і підпис (криптографічне підтвердження автентичності). Заголовок і корисне навантаження є JSON, кодування base64url для безпеки URL-адреси; підпис використовує один із кількох алгоритмів (HS256, RS256, ES256 та інші) над закодованим заголовком і корисним навантаженням.

Декодування JWT — розбиття його на сегменти та декодування base64 кожного — не потребує жодного секрету. Кожен, хто має текст маркера, може прочитати його заголовок і корисне навантаження. Підпис, однак, можна перевірити лише за допомогою секретного (HMAC) або відкритого ключа (асиметричного). Розшифровка для перевірки; верифікація - це те, що підтверджує справжність.

Цей декодер розділяє маркер, розшифровує за допомогою base64 кожен сегмент, аналізує заголовок і корисне навантаження як JSON і показує результат. Він не намагається перевірити підпис, оскільки для цього потрібен секретний або відкритий ключ, якого декодер не має. Декодований вихід є перевіркою лише для читання — корисний для налагодження токенів, але не замінює правильну перевірку в коді програми.

Навіщо декодувати JWT

Усунення проблем автентифікації майже завжди передбачає перевірку маркерів. Маркер, який виглядає дійсним у коді, може мати неправильні претензії, неочікуваний алгоритм, мітку часу, термін дії якого закінчився, або невідповідність аудиторії. Розшифровка токена показує, що саме виготовив емітент.

Також допомагає перевірка токенів під час інтеграційної роботи. Під час підключення до стороннього API або постачальника ідентифікаційної інформації фактичні назви заяв, формати та структуру найкраще зрозуміти шляхом декодування зразків маркерів, а не покладатися на документацію, яка може бути застарілою.

Як використовувати

Вставте токен, отримайте проаналізований вміст.

  1. Вставте свій JWT: Опустіть повний маркер (header.payload.signature) у область введення. Декодер приймає токени з додатковим префіксом носія або без нього.
  2. Огляньте заголовок: У заголовку показано алгоритм підпису (alg) і тип маркера (typ). Поширені алгоритми: HS256, RS256 і ES256. Слідкуйте за alg: none, який сигналізує про непідписаний маркер і рідко є безпечним у виробництві.
  3. Огляньте корисне навантаження: Корисне навантаження містить претензії: iss (емітент), sub (тема), aud (аудиторія), exp (термін дії), iat (випущено о) та будь-які претензії, пов’язані з програмою. Стандартні мітки часу — це секунди епохи Unix.
  4. Перевірити окремо: Декодер не перевіряє підпис. Щоб перевірити автентичність, запустіть маркер через бібліотеку JWT з відповідним секретним або відкритим ключем у коді програми.

Загальні випадки використання

Технічні деталі

Формат JWT — це три сегменти, з’єднані крапками. Кожен сегмент кодується за допомогою URL-адреси base64 — URL-безпечного варіанту base64, який використовує - і _ замість + і /, а заповнення іноді опускається. Декодування вимагає скасування URL-безпечних замін, доповнення сегмента та декодування base64.

Після декодування заголовок і корисне навантаження є JSON. Сегмент підпису є двійковим (необроблені байти підпису) і не читається людиною; ключ підтвердження потрібен, щоб бути корисним.

Загальні твердження, визначені в RFC 7519: iss (видавець), sub (ідентифікатор суб’єкта), aud (аудиторія), exp (термін дії як секунди епохи Unix), nbf (мітка часу не раніше), iat (мітка часу видано), jti (унікальний ідентифікатор маркера). Претензії щодо конкретної програми можуть відображатися з будь-якою назвою.

Найкращі практики

Поширені запитання

Чи безпечно вставляти сюди мій JWT?
так Декодування повністю відбувається у вашому браузері — маркер ніколи не надсилається на сервер. Однак JWT — це облікові дані — не публікуйте їх публічно (на знімках екрана, у публікаціях Stack Overflow тощо), оскільки вони можуть надати доступ до ваших облікових записів.
Чи перевіряє цей інструмент підпис JWT?
Цей інструмент декодує та відображає вміст маркера. Для перевірки підпису потрібен секретний ключ (HMAC) або відкритий ключ (RSA/ECDSA), який має залишатися на вашому сервері. Інструмент показує використаний алгоритм, але не може перевірити без ключа.
Що означають стандартні заяви JWT?
iss = емітент, sub = тема (ідентифікатор користувача), exp = час закінчення (мітка часу Unix), iat = видано о, nbf = не раніше, aud = аудиторія, jti = ідентифікатор JWT. Спеціальні претензії можуть містити будь-які дані, що стосуються програми.
Чому будь-хто може декодувати JWT?
JWT кодуються, а не шифруються. Корисне навантаження закодовано за допомогою Base64URL (не зашифровано), тому будь-хто може його прочитати. Підпис запобігає підробці, а не читанню. Ніколи не зберігайте конфіденційні дані (паролі, SSN) у корисних навантаженнях JWT.
Чому на деяких токенах відсутній підпис?
Токени з alg: none не мають підпису. Вони є дійсними JWT за специфікацією, але не надають гарантій автентичності та не повинні прийматися у виробництві.
Чи зашифровані JWT?
Стандартні корисні дані JWT підписані, але не зашифровані. JWE (JSON Web Encryption, RFC 7516) — це окремий формат для зашифрованих токенів. Більшість JWT у природі є JWS (тільки підписані).
Чи мій маркер завантажено на сервер?
Ні. Декодування відбувається у вашому браузері; токен не покидає ваш пристрій.
Скільки зазвичай тривають JWT?
Від кількох сотень до кількох тисяч символів. Довжина залежить від кількості та розміру претензій плюс довжини підпису (що залежить від алгоритму).