Перевірити підпис JSON Web Token (JWT)

перевіряє підпис JWT (HS256, HS384, HS512, RS256, RS384, RS512) за секретом або публічним ключем, та інспектує його claims
Для HS256 / HS384 / HS512: секретний рядок. Для RS256 / RS384 / RS512: публічний ключ у форматі PEM.

Чому потрібно перевіряти JWT?

Перевірка JWT важлива для:

  • Безпеки: Запобігання використанню підроблених токенів
  • Цілісності: Переконання, що дані не були змінені
  • Дійсності: Перевірка терміну дії та інших обмежень
  • Довіри: Упевненість у автентичності токена

Підтримувані алгоритми

Наш перевірник JWT підтримує такі алгоритми підпису:

HMAC (Симетричні)

  • HS256: HMAC з SHA-256 (рекомендований)
  • HS384: HMAC з SHA-384
  • HS512: HMAC з SHA-512

RSA / ECDSA (Асиметричні)

  • RS256: RSA з SHA-256
  • RS384: RSA з SHA-384
  • RS512: RSA з SHA-512
  • ES256: ECDSA з SHA-256
  • ES384: ECDSA з SHA-384
  • ES512: ECDSA з SHA-512

Формат ключа

Для алгоритмів HMAC (HS256, HS384, HS512):

  • Використовуйте секретний ключ у вигляді рядка або Base64
  • Приклад: my-secret-key або c2VjcmV0LWtleQ==

Для алгоритмів RSA/ECDSA (RS256, RS384, RS512, ES256, ES384, ES512):

  • Використовуйте публічний ключ у форматі PEM
  • Приклад:
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxJZ5...

Як працює перевірка JWT?

Перевірка JWT складається з таких кроків:

  1. Декодування заголовка та payload з Base64URL
  2. Відновлення ключа на основі алгоритму (HMAC або RSA/ECDSA)
  3. Обчислення підпису за допомогою заголовка, payload та ключа
  4. Порівняння підписів для перевірки автентичності токена
  5. Перевірка тверджень (exp, nbf, iat тощо)

Випадки використання

Перевірка JWT важлива для:

  • Автентифікації користувачів у API
  • Перевірки цілісності даних
  • Авторизації доступу до ресурсів
  • Безпечного обміну інформацією між сервісами

Як користуватися перевірником JWT

Використання нашого перевірника JWT:

  1. Вставте свій JWT-токен
  2. Введіть секретний ключ (для HMAC) або публічний ключ у форматі PEM (для RSA/ECDSA)
  3. Натисніть "Перевірити JWT"
  4. Отримайте результат перевірки підпису та тверджень

Типові помилки

Уникайте цих поширених помилок при роботі з JWT:

  • Не перевіряти підпис: Завжди перевіряйте підпис, навіть якщо токен виглядає дійсним
  • Використовувати слабкі алгоритми: Уникайте HS256 із коротким ключем чи старих алгоритмів
  • Не перевіряти термін дії: Завжди перевіряйте поле exp
  • Зберігати чутливі дані: JWT легко декодуються, не зберігайте секрети без шифрування

Тимчасові твердження

JWT містить кілька стандартних тимчасових тверджень:

  • exp (Expiration Time): Час закінчення дії токена (обов’язковий для перевірки)
  • nbf (Not Before): Tokен недійсний до цього часу
  • iat (Issued At): Час створення токена

Час вказується у формі Unix timestamp (кількість секунд з 1 січня 1970 року).

Перевірник проти декодера

Декодер JWT просто показує вміст токена у читабельному форматі. Він не перевіряє підпис.

Перевірник JWT перевіряє підпис токена та твердження (exp, nbf тощо). Це єдиний спосіб переконатися, що токен дійсний і безпечний для використання.

Поширені запитання про перевірку JWT

Чому мій JWT недійсний?

JWT може бути недійсним з таких причин:

  • Неправильний підпис: Ключ не відповідає тому, який використовувався для створення токена
  • Термін дії закінчився: Поле exp вказує на минулий час
  • Зарано активований: Поле nbf вказує на майбутній час
  • Недійсний алгоритм: Алгоритм у заголовку не підтримується
  • Пошкоджений токен: JWT було змінено після створення

Чи можна перевірити JWT без ключа?

Ні, для перевірки підпису обов’язково потрібен ключ. Ви можете декодувати JWT без ключа, щоб побачити його вміст, але не зможете перевірити його автентичність.

Приклад запиту

curl -X POST https://cdrn.fr/api/v1/tools/jwt-verifier/execute \
  -H "Content-Type: application/json" \
  -d '{"token":"...","key":"..."}'

Схема вхідних даних

Поле Тип Обов'язкове За замовчуванням
token text
key text

Точки доступу

  • GET https://cdrn.fr/api/v1/tools - перелічує всі доступні інструменти
  • GET https://cdrn.fr/api/v1/tools/jwt-verifier - отримує схему цього інструменту
  • POST https://cdrn.fr/api/v1/tools/jwt-verifier/execute - виконує цей інструмент з JSON-payload