Декодер JWT

Миттєво декодуйте заголовки та корисне навантаження JWT прямо у вашому браузері.

Вставте ваш JWT
Готово. Вставте JWT для декодування.

Ваш токен декодується у вашому браузері. Нічого не завантажується на BroBroGo.

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

Чи безпечно вставляти мій JWT сюди?

Так. Декодування відбувається повністю у вашому браузері — ваш токен ніколи не надсилається на BroBroGo.

Чи перевіряє цей інструмент підпис токена?

Ні. Інструмент лише декодує заголовок (header) та корисне навантаження (payload) для читання. Для перевірки підпису потрібен секретний ключ або публічний ключ, які цей інструмент ніколи не запитує.

Як дізнатися, чи закінчився термін дії мого токена?

Декодер зчитує параметр exp та відображає статусний бейдж — дійсний, протермінований, ще не дійсний або без терміну дії — поруч із декодованим токеном.

Структура JSON Web Token та принципи його кодування

JSON Web Token (JWT) — це компактний і безпечний для URL-адрес засіб представлення заяв, які передаються між двома сторонами. Токен складається з трьох частин, розділених крапками:

  1. Заголовок (Header) — містить метадані про токен.
  2. Корисне навантаження (Payload) — містить безпосередньо заяви (claims).
  3. Підпис (Signature) — забезпечує цілісність токена.

Кожна з перших двох частин є структурованим об'єктом JSON, який кодується за допомогою алгоритму Base64URL. Base64URL — це модифікація стандартного кодування Base64, яка замінює символи + та / на - та _ відповідно, а також виключає символи заповнення =, що робить рядок безпечним для використання в URL-адресах та HTTP-заголовках.

Роль заголовка та корисного навантаження в JWT

Заголовок JWT містить інформацію про те, як саме закодовано та підписано токен. Найчастіше в ньому присутні такі параметри (claims):

  • alg: визначає алгоритм шифрування або хешування, який використовується для створення підпису (наприклад, HS256 або RS256).
  • typ (Type): вказує на тип токена, яким зазвичай є JWT.

Корисне навантаження містить фактичні дані, які необхідно передати. Ці дані називаються заявами (claims) і поділяються на зарезервовані, публічні та приватні. Серед стандартних зарезервованих заяв найважливішими для життєвого циклу токена є:

  • iat (Issued At): час створення токена у форматі Unix Timestamp.
  • exp (Expiration Time): час закінчення терміну дії токена у форматі Unix Timestamp.

Декодування проти верифікації підпису

Існує принципова різниця між декодуванням JWT та його верифікацією.

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

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

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

Робота з інструментом Декодер JWT

Цей інструмент дозволяє миттєво аналізувати вміст токенів безпосередньо у вашому браузері.

Вхідні дані

Для аналізу необхідно ввести рядок у поле з міткою Вставте ваш JWT. Вхідний рядок повинен відповідати таким вимогам:

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

Результати аналізу

Після введення валідного токена інструмент відображає такі дані:

  • Заголовок (Header): декодований заголовок токена у форматі JSON.
  • Корисне навантаження (Payload): декодоване корисне навантаження у форматі JSON.
  • Алгоритм: алгоритм, витягнутий із заголовка.
  • Тип: тип токена.
  • Створено о: час випуску токена, отриманий із заяви iat.
  • Термін дії: час закінчення дії токена, отриманий із заяви exp.
  • Символи: загальна кількість символів у введеному JWT.

Поруч із декодованими даними відображається статусний бейдж, який вказує на стан токена на основі аналізу заяви exp:

  • Дійсний
  • Термін дії закінчився
  • Ще не дійсний
  • Без терміну дії (якщо заява exp відсутня в токені)

Під статусом відображається примітка: "Це перевіряє лише твердження exp — воно не перевіряє підпис, видавця чи аудиторію."

Обробка помилок та особливі випадки

Інструмент має чіткі правила валідації вхідних даних:

  • Якщо поле введення порожнє, інструмент перебуває у стані Готово. Вставте JWT для декодування.
  • Якщо вхідний рядок не містить трьох частин, розділених крапками, відображається помилка: Некоректний JWT — очікується три частини, розділені крапками.
  • Якщо заголовок неможливо декодувати через помилку у форматі Base64URL, виводиться повідомлення: Не вдалося декодувати заголовок — некоректний Base64URL.
  • Якщо корисне навантаження містить помилку кодування, відображається: Не вдалося декодувати корисне навантаження — некоректний Base64URL.
  • Якщо декодований заголовок не є коректним JSON, виводиться: Заголовок не є валідним JSON.
  • Якщо корисне навантаження не є коректним JSON, виводиться: Корисне навантаження не є валідним JSON.
  • Якщо довжина введеного рядка перевищує допустимі межі для реальних токенів, відображається помилка: Цей рядок занадто довгий для справжнього JWT.

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

Конфіденційність обробки даних

Ваш токен декодується у вашому браузері. Нічого не завантажується на BroBroGo. Усі операції з декодування Base64URL та парсингу JSON виконуються локально на вашому пристрої за допомогою JavaScript, що виключає передачу конфіденційних даних чи токенів доступу через мережу Інтернет.

Часті запитання (FAQ)

Чи безпечно вставляти мій JWT сюди?

Так. Декодування відбувається повністю у вашому браузері — ваш токен ніколи не надсилається на BroBroGo.

Чи перевіряє цей інструмент підпис токена?

Ні. Інструмент лише декодує заголовок (header) та корисне навантаження (payload) для читання. Для перевірки підпису потрібен секретний ключ або публічний ключ, які цей інструмент ніколи не запитує.

Як дізнатися, чи закінчився термін дії мого токена?

Декодер зчитує параметр exp та відображає статусний бейдж — дійсний, протермінований, ще не дійсний або без терміну дії — поруч із декодованим токеном.