Utilia

JWT dekoder

Dekodiraj zaglavlje i sadržaj JWT-a, pročitaj exp, iat i nbf kao datume i proveri HS256, RS256, PS256, ES256 ili EdDSA potpis lokalno u pregledaču.

Tokeni su akreditivi. Ovaj alat ih dekodira i proverava u tvom pregledaču i nikuda ih ne šalje.

Proveri potpis

HS256/384/512: unesi zajedničku tajnu. RS, PS, ES (256/384/512) i EdDSA: nalepi javni ključ kao PEM (javni ključ, RSA javni ključ ili sertifikat) ili JWK (JWK Set se bira prema kid).

Kako se dekodira JWT

  1. Nalepi token u polje JSON Web Token. Radi i ceo Authorization: Bearer … unos: prefiks Bearer i prelomi redova se uklanjaju.
  2. Token se dekodira dok kucaš (ili klikni Dekodiraj). Zaglavlje i Sadržaj (payload) prikazuju se kao formatiran JSON, svaki sa svojim dugmetom Kopiraj.
  3. Pogledaj tabelu Vremenski podaci: exp, nbf i iat prikazani su sa izvornom vrednošću, datumom u tvojoj vremenskoj zoni, relativnim vremenom („za 3 sata“, „pre 2 dana“) i stanjem kao što je Isteklo ili Još ne važi.
  4. Pročitaj upozorenja iznad rezultata, na primer kada je alg jednak none ili kada datum liči na milisekunde.
  5. Da proveriš potpis, upiši ključ u odeljku Proveri potpis i klikni Proveri potpis.

Dekodiranje nije provera

JWT se sastoji od tri Base64url dela razdvojena tačkama: zaglavlje.sadržaj.potpis. Zaglavlje i sadržaj su samo kodirani, a ne šifrovani, pa ih svako ko ima token može pročitati, a ovaj alat može da dekodira bilo koji token bez ključa. To takođe znači da dekodiran sadržaj ništa ne dokazuje: neko ga je mogao izmeniti. Samo ispravan potpis pokazuje da je token izdao vlasnik ključa i da od tada nije menjan. Zato u statusu stoji „Dekodirano (potpis nije proveren)“ dok potpis ne proveriš.

Token sa pet delova je JWE (šifrovani JWT); njegov sadržaj se ne može pročitati bez ključa za dešifrovanje, što ti alat i kaže.

Provera potpisa

  • HS256, HS384, HS512 (HMAC): unesi zajedničku Tajnu. Pomoću Format tajne izaberi da li je ona običan tekst (UTF-8) ili Base64/Base64url, jer neki provajderi čuvaju tajne u Base64. Možeš nalepiti i JWK tipa oct. Ako je tajna kraća od izlaza heš funkcije (32 bajta za HS256), alat napominje da je ispod minimuma iz RFC 7518.
  • RS256/384/512, PS256/384/512, ES256/384/512 i EdDSA: nalepi Javni ključ (PEM ili JWK). Prihvaćeni PEM blokovi su PUBLIC KEY, RSA PUBLIC KEY i CERTIFICATE (ključ se čita iz X.509 sertifikata). Radi i JWK ili ceo JWK Set: koristi se ključ čiji se kid poklapa sa zaglavljem. Privatni ključevi se odbijaju; provera ih nikada ne zahteva. EdDSA podržava Ed25519 u pregledačima čiji Web Crypto to implementira.

Provera koristi Web Crypto API pregledača. Rezultat „Neispravan potpis“ znači da je ključ pogrešan ili da je token izmenjen. Imaj na umu da se algoritam uzima iz zaglavlja tokena: pravi server mora da zada očekivani algoritam u svojoj konfiguraciji, inače ga napadač može sam izabrati.

Bezbednosne napomene

  • Tokeni su akreditivi. Ko drži važeći pristupni token obično može da radi u ime vlasnika dok token ne istekne. Ovaj alat sve dekodira i proverava u tvom pregledaču i nikada nigde ne šalje token ni ključ. Ipak izbegavaj da lepiš produkcione tokene u alate koje ne možeš da pregledaš.
  • alg: none znači da token nije potpisan. Svako može da ga lažira, a server ga mora odbiti. Alat prikazuje upozorenje i odbija da „proveri“ takav token.
  • Provera vremena ovde koristi sat tvog računara bez ikakve tolerancije; serveri često dozvoljavaju minut ili dva razlike u satovima.
  • JWT datumi (NumericDate) su sekunde od 1. januara 1970. UTC. Trinaestocifrena vrednost je verovatno u milisekundama, što je česta greška.

Česta pitanja

Može li alat da mi kaže da li je token ispravan?

Može da ti kaže da li se potpis poklapa sa ključem koji uneseš i da li su exp i nbf trenutno ispunjeni. Da li će token biti prihvaćen zavisi i od provera koje zna samo server: očekivani izdavalac (iss), publika (aud), algoritam i opoziv.

Zašto provera ne uspeva sa pravom tajnom?

Proveri Format tajne: Base64 tajna uneta kao tekst daje drugačiji ključ. Takođe se uveri da tajni nije dodat razmak ili prelom reda, jer se HMAC ključevi porede bajt po bajt.

Koja je razlika između RS256, PS256 i ES256?

Sva tri su potpisi javnim ključem sa SHA-256. RS256 koristi RSA sa PKCS#1 v1.5 dopunom, PS256 koristi RSA sa PSS dopunom, a ES256 koristi ECDSA na krivoj P-256, što daje mnogo kraće potpise.

Gde da nađem javni ključ provajdera?

Provajderi identiteta objavljuju JWKS (JSON Web Key Set), obično povezan iz /.well-known/openid-configuration pod jwks_uri. Otvori ga sam i nalepi JSON ovde; alat bira ključ prema kid i ništa ne preuzima sa mreže.

Da li je bezbedno nalepiti token ovde?

Token ostaje na tvom uređaju: dekodiranje i provera se obavljaju lokalno i ništa se ne otprema. Za dodatni oprez koristi istekao ili probni token kada ti treba samo uvid u strukturu.