JWT декодер
Декодирайте хедъра и съдържанието на JWT, прочетете exp, iat и nbf като дати и проверете подписи HS256, RS256, ES256 или EdDSA във вашия браузър.
Токените са данни за достъп. Този инструмент ги декодира и проверява във вашия браузър и никога не ги изпраща никъде.
Хедър
Съдържание (payload)
| Поле | Стойност | Дата | Състояние |
|---|
- Алгоритъм (alg)
- —
- Подпис (Base64url)
- —
Проверка на подписа
HS256/384/512: въведете споделената тайна. RS, PS, ES (256/384/512) и EdDSA: поставете публичния ключ като PEM (публичен ключ, RSA публичен ключ или сертификат) или JWK (JWK Set се подбира по kid).
Как да декодирате JWT
- Поставете токена в полето JSON Web Token. Работи и с цяла стойност
Authorization: Bearer …: префиксътBearerи новите редове се премахват автоматично. - Токенът се декодира, докато пишете (или щракнете върху Декодирай). Хедър и Съдържание (payload) се показват като форматиран JSON, всеки със свой бутон Копирай.
- Прегледайте таблицата Времеви полета:
exp,nbfиiatса показани със суровата си стойност, датата във вашия часови пояс, относително време („след 3 часа“, „преди 2 дни“) и състояние като Изтекъл или Още не е валиден. - Прочетете предупрежденията над резултатите, например когато
algеnoneили когато дата изглежда като милисекунди. - За да проверите подписа, попълнете ключа в Проверка на подписа и щракнете върху Провери подписа.
Декодирането не е проверка
JWT се състои от три части в Base64url, разделени с точки: header.payload.signature. Хедърът и съдържанието са само кодирани, не шифровани, затова всеки, който държи токена, може да ги прочете, а този инструмент декодира всеки токен без ключ. Това означава и че декодираното съдържание не доказва нищо: някой може да го е променил. Само валиден подпис показва, че токенът е издаден от притежателя на ключа и не е променян оттогава. Затова в състоянието пише „Декодиран (подписът не е проверен)“, докато не го проверите.
Токен с пет части е JWE (шифрован JWT): съдържанието му не може да се прочете без ключа за дешифриране и инструментът ви го съобщава.
Проверка на подписа
- HS256, HS384, HS512 (HMAC): въведете споделената Тайна. С Формат на тайната посочете дали е обикновен текст (UTF-8), или Base64/Base64url, защото някои доставчици пазят тайните в Base64. Можете да поставите и JWK от тип
oct. Ако тайната е по-кратка от дължината на хеша (32 байта за HS256), инструментът отбелязва, че е под минимума по RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 и EdDSA: поставете Публичен ключ (PEM или JWK). Приетите PEM блокове са
PUBLIC KEY,RSA PUBLIC KEYиCERTIFICATE(ключът се чете от X.509 сертификата). Работи и JWK, и цял JWK Set: използва се ключът, чийтоkidсъвпада с хедъра. Частните ключове се отхвърлят, защото проверката никога не се нуждае от такъв. EdDSA поддържа Ed25519 в браузъри, чието Web Crypto го реализира.
Проверката използва Web Crypto API на браузъра. Резултатът „Невалиден подпис“ означава, че ключът е грешен или токенът е променен. Имайте предвид, че алгоритъмът се взема от хедъра на токена: истинският сървър трябва да фиксира очаквания алгоритъм в конфигурацията си, иначе нападател може да го избере.
Бележки за сигурността
- Токените са данни за достъп. Който притежава валиден токен за достъп, обикновено може да действа като негов собственик до изтичането му. Този инструмент декодира и проверява всичко във вашия браузър и никога не изпраща токена или ключа никъде. Все пак избягвайте да поставяте производствени токени в инструменти, които не можете да проверите.
alg: noneозначава, че токенът е неподписан. Всеки може да подправи такъв и сървърът трябва да го отхвърли. Инструментът показва предупреждение и отказва да „провери“ такъв токен.- Проверките на времето тук използват часовника на вашия компютър без толеранс; сървърите често допускат минута-две разлика.
- Датите в JWT (NumericDate) са секунди от 1 януари 1970 г. UTC. 13-цифрена стойност вероятно е в милисекунди, което е често срещана грешка.
Често задавани въпроси
Може ли инструментът да ми каже дали токенът е валиден?
Може да покаже дали подписът съвпада с ключа, който подавате, и дали exp и nbf са изпълнени в момента. Дали токенът ще бъде приет, зависи и от проверки, които знае само сървърът: очакван издател (iss), аудитория (aud), алгоритъм и отнемане на достъпа.
Защо проверката не успява с правилната тайна?
Проверете Формат на тайната: Base64 тайна, въведена като текст, дава различен ключ. Уверете се също, че към тайната не е добавен интервал или нов ред, защото HMAC ключовете се сравняват байт по байт.
Каква е разликата между RS256, PS256 и ES256?
И трите са подписи с публичен ключ и SHA-256. RS256 използва RSA с допълване PKCS#1 v1.5, PS256 използва RSA с допълване PSS, а ES256 използва ECDSA върху кривата P-256, което дава много по-къси подписи.
Къде да намеря публичния ключ на доставчик?
Доставчиците на идентичност публикуват JWKS (JSON Web Key Set), обикновено посочен в /.well-known/openid-configuration под jwks_uri. Отворете го сами и поставете JSON тук; инструментът избира ключа по kid и никога не изтегля нищо.
Безопасно ли е да поставя токена си тук?
Токенът остава на вашето устройство: декодирането и проверката стават локално и нищо не се качва. За допълнителна предпазливост използвайте изтекъл или тестов токен, когато искате само да разгледате структурата.
Сродни инструменти
- HMAC генератор Изчислете HMAC-SHA1, SHA-256, SHA-384 или SHA-512 с ключ като текст, hex или Base64 и проверете подпис на webhook във вашия браузър.
- Base64 кодиране и декодиране Безплатно Base64 кодиране и декодиране с пълна поддръжка на UTF-8 и вариант base64url. Работи във вашия браузър, нищо не се качва на сървър.
- Конвертор на Unix времеви печат Преобразувайте Unix времеви печат в секунди или милисекунди в четими дати по местно време, UTC и ISO 8601 и обратно – всяка дата в epoch време.
- JSON форматиране и валидиране Безплатно форматиране и валидиране на JSON, което подрежда, минимизира и проверява JSON във вашия браузър, със синтактични грешки по ред и колона.