Decodare JWT
Lipește un token ca să vezi ce conține și când expiră. Dacă ai cheia, poți verifica și semnătura.
Decodarea are loc în browserul tău. Nu se trimite nimic.
Valabilitate
…
Decodat, neverificat: oricine poate crea un token cu acest conținut. Introdu cheia mai jos ca să verifici semnătura.
Antet
{
"alg": "HS256",
"typ": "JWT"
}Payload
{
"iss": "https://example.com",
"sub": "1234567890",
"aud": "quaestio",
"name": "Ada Lovelace",
"iat": 1757000000,
"nbf": 1757000000,
"exp": 4102444800,
"jti": "4f1c2a9e"
}Câmpuri și claimuri
- algalgoritmul semnăturii
- HS256
- typtipul tokenului
- JWT
- issemitent
- https://example.com
- subsubiect, de obicei ID-ul utilizatorului
- 1234567890
- auddestinatarul căruia îi este adresat tokenul
- quaestio
- expmomentul expirării
- 4102444800
- nbfnu este valid înainte de
- 1757000000
- iatemis la
- 1757000000
- jtiID unic al tokenului
- 4f1c2a9e
- Semnătură
- Octeți: 32
Verifică semnătura
Cheia este folosită doar în browserul tău și nu este salvată.
Cum funcționează
Un JSON Web Token (JWT, RFC 7519) are trei părți despărțite prin puncte: antet, payload și semnătură. Antetul și payloadul sunt JSON codificat în base64url, o variantă de base64 care folosește - și _ în loc de + și / și omite completarea. Oricine poate citi conținutul; acesta nu este criptat.
Antetul indică algoritmul (alg) și adesea tipul (typ) și ID-ul cheii (kid). Payloadul conține claimuri, adică afirmații despre utilizator sau sesiune. Standardul înregistrează șapte: iss (emitent), sub (subiect), aud (destinatar), exp (expirare), nbf (nu înainte de), iat (emis la) și jti (ID-ul JWT). Celelalte claimuri sunt la alegerea emitentului.
Momentele din exp, nbf și iat sunt secunde de la 1 ianuarie 1970 UTC. Un token nu trebuie acceptat începând cu momentul exp și nici înainte de momentul nbf. Decodorul le compară cu ceasul dispozitivului tău, așa că un ceas greșit dă o stare greșită.
Decodarea nu este verificare. Semnătura arată că tokenul a fost emis de cineva care deține cheia și că conținutul nu a fost modificat, dar acest lucru se poate verifica doar cu cheia. HS256, HS384 și HS512 folosesc un secret comun (HMAC). RS și PS folosesc RSA, ES curbe eliptice (ECDSA cu P-256, P-384 sau P-521), iar EdDSA folosește Ed25519; acestea se verifică cu cheia publică în format PEM sau JWK, pe care emitenții o publică adesea ca JWK Set.
Un token cu alg none nu are semnătură și nu trebuie acceptat niciodată de un server. Mai multe vulnerabilități cunoscute au pornit de la biblioteci care acceptau none sau care permiteau unui atacator să înlocuiască RS256 cu HS256 și să semneze folosind cheia publică drept secret.
Un token funcționează adesea ca o cheie de acces la un cont. Aici totul se petrece în browserul tău, cu criptografia integrată a acestuia (WebCrypto), iar nici tokenul, nici secretul, nici cheia nu sunt trimise nicăieri. Chiar și așa, nu lipi niciodată un token activ sau un secret pe un site în care nu ai încredere și nu lipi niciodată o cheie privată: pentru verificare este suficientă cea publică.