Декодер JWT: заголовок, payload и срок действия
Мгновенно декодируйте JSON Web Tokens (JWT). Безопасно просматривайте заголовок, полезную нагрузку и подпись прямо в вашем браузере.
Подпись
Для проверки подписи требуется секретный ключ.
Как этот декодер JWT читает токен
JSON Web Token объединяет три части в одной строке: заголовок, полезную нагрузку и подпись. Этот декодер разбивает закодированный токен на эти три части, преобразует заголовок и полезную нагрузку обратно в читаемый JSON и извлекает алгоритм, дату выдачи и дату истечения срока действия, так что вы можете изучить токен, не написав ни строчки кода.
Заголовок, полезная нагрузка и подпись
Токен разделён двумя точками на три части: заголовок.полезная_нагрузка.подпись. Первые две части представляют собой JSON, закодированный в base64url, поэтому их декодирование представляет собой обратимое преобразование, а не расшифровку. Заголовок указывает алгоритм подписи, поле alg, например HS256 или RS256, а также тип токена. Полезная нагрузка содержит claims: идентификатор subject, собственные поля приложения и, как правило, iat (время выдачи) и exp (время истечения), хранящиеся в секундах Unix. Подпись представляет собой криптографическое значение, вычисленное из заголовка и полезной нагрузки; для её проверки нужен секретный или приватный ключ, которым она была создана, поэтому чтение содержимого токена отличается от проверки его подлинности. Некоторые токены подписываются со значением alg none и состоят только из двух частей, заголовок.полезная_нагрузка; декодер принимает и эту короткую форму, оставляя поле подписи пустым. Base64url отличается от обычного base64 тем, что вместо плюса и слэша использует дефис и подчёркивание, и обычно обходится без символа равенства, применяемого для заполнения.
Пример на практике
Вставьте токен наподобие приведённого ниже, и он разделится на три цветных сегмента, после чего заголовок и полезная нагрузка появятся в виде отформатированного JSON.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0NjEwMjkzODU3IiwibmFtZSI6Ik1hcmlhIEl2YW5vdmEiLCJpYXQiOjE3MDE3Nzc2MDAsImV4cCI6MTcwOTU1MzYwMH0.e9XIEDiioglrzkdCCqBsOgSj--8
{
"alg": "HS256",
"typ": "JWT"
}
{
"sub": "4610293857",
"name": "Maria Ivanova",
"iat": 1701777600,
"exp": 1709553600
}
Значок Algorithm показывает HS256, считанный из заголовка. Значение iat соответствует 5 декабря 2023 года, а значение exp соответствует 4 марта 2024 года; поскольку эта дата уже прошла, значок Status показывает EXPIRED. Всё это происходит не на сервере: декодирование выполняется в браузере, и инструмент никогда не проверяет подлинность подписи, поскольку у него нет доступа к ключу, которым она была создана.