Теория
JWT (JSON Web Token) — компактный токен из трёх частей, разделённых точками: заголовок, полезная нагрузка и подпись. Каждая из первых двух частей — JSON, закодированный в Base64URL. В заголовке указывают алгоритм подписи, в нагрузке — данные, например имя пользователя и срок действия.
Декодер разбирает токен без проверки подписи и показывает содержимое частей. Токены используют для аутентификации в веб-приложениях: сервер выдаёт подписанный токен, клиент предъявляет его при запросах.
Важно: раскодировать JWT может кто угодно — данные внутри не зашифрованы. Доверять содержимому можно только после проверки подписи, а секреты в токен класть нельзя.
Пример с решением
- Условие. Разберите токен «eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi0JjQstCw0L0ifQ.подпись».
- Формула. Части по точкам; первые две — Base64URL-декодирование.
- Подстановка. Первая часть декодируется в «{"alg":"HS256"}», вторая — в «{"name":"Иван"}».
- Вычисление. Из второй части достаём поле name — Иван.
- Ответ. Заголовок: алгоритм HS256; нагрузка: имя Иван. Калькулятор с этим токеном покажет обе части в читаемом виде.
Главное
- Три части: заголовок, нагрузка, подпись.
- Первые две — JSON в Base64URL.
- Без проверки подписи содержимому верить нельзя.