Utilia

JWT декодер

Декодирајте го заглавието и содржината на JWT, прочитајте exp, iat и nbf како датуми и проверете HS256, RS256, PS256, ES256 или EdDSA потпис локално.

Токените се акредитиви. Оваа алатка ги декодира и проверува во вашиот прелистувач и никогаш не ги испраќа никаде.

Проверка на потписот

HS256/384/512: внесете ја заедничката тајна. RS, PS, ES (256/384/512) и EdDSA: залепете го јавниот клуч како PEM (јавен клуч, RSA јавен клуч или сертификат) или JWK (JWK Set се подредува според kid).

Како да декодирате JWT

  1. Залепете го токенот во полето JSON Web Token. Работи и цела вредност од типот Authorization: Bearer …: префиксот Bearer и прекините на редови се отстрануваат.
  2. Токенот се декодира додека пишувате (или кликнете Декодирај). Заглавие и Содржина (payload) се појавуваат како форматиран JSON, секое со свое копче Копирај.
  3. Погледнете ја табелата Временски тврдења: exp, nbf и iat се прикажани со суровата вредност, датумот во вашата временска зона, релативно време („за 3 часа“, „пред 2 дена“) и статус како Истечен или Сè уште не важи.
  4. Прочитајте ги предупредувањата над резултатите, на пример кога alg е none или кога датумот личи на милисекунди.
  5. За да го проверите потписот, внесете го клучот под Проверка на потписот и кликнете Провери потпис.

Декодирање не е проверка

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. Тринаесетцифрена вредност најверојатно е во милисекунди, што е честа грешка.

Често поставувани прашања

Дали алатката може да ми каже дали токенот е важечки?

Може да ви каже дали потписот одговара на клучот што го давате и дали 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 и никогаш ништо не презема од мрежа.

Дали е безбедно да го залепам токенот овде?

Токенот останува на вашиот уред: декодирањето и проверката се случуваат локално и ништо не се качува. За дополнителна претпазливост, користете истечен или тест токен кога ви треба само да ја прегледате структурата.