Decodificatore / verificatore JWT

Decodifica header e payload di un JWT, verifica la firma e scopri quando scade.

Token

Cos’è un JSON Web Token

Un JSON Web Token (JWT) è un modo compatto e autonomo di trasportare un insieme di claim — affermazioni come "questo è l’utente 42" o "questo token scade a mezzogiorno" — in una forma verificabile. I JWT sono ovunque nell’autenticazione moderna: dopo il login, un server spesso consegna al tuo browser un JWT firmato, e ogni richiesta successiva lo include così che il server possa fidarsi di chi sei senza consultare nulla. Poiché il token porta i propri claim e la propria firma, viene descritto come "senza stato" (stateless).

Un JWT è composto da tre parti codificate in Base64URL unite da punti: header.payload.signature. Questo strumento divide e decodifica quelle parti per te, mostra i claim in forma leggibile e, se fornisci la chiave di firma, verifica che la firma sia autentica.

Le tre parti

  • Header: descrive come è firmato il token, soprattutto l’algoritmo ("alg", es. HS256 o RS256) e il tipo di token.
  • Payload: i claim stessi — un oggetto JSON con campi come sub (soggetto/utente), exp (scadenza), iat (emesso il) e qualsiasi dato personalizzato aggiunto dall’emittente.
  • Signature: un valore crittografico calcolato su header e payload con un segreto o una chiave privata. È ciò che rende affidabile un JWT: cambia un singolo carattere del payload e la firma non corrisponde più.

Fondamentale: header e payload sono solo codificati, non crittografati. Chiunque abbia il token può leggerli. La firma non nasconde il contenuto: dimostra che non è stato manomesso. Non mettere mai password o segreti nel payload di un JWT.

Verificare la firma

Decodificare un JWT ti dice cosa afferma; verificarlo ti dice se credere a quelle affermazioni. La verifica ricalcola la firma da header e payload usando una chiave e controlla che corrisponda. Ci sono due famiglie di algoritmi, che usano tipi di chiave diversi:

  • HMAC (HS256, HS384, HS512): uno schema simmetrico. Lo stesso segreto condiviso firma e verifica. Fornisci quel segreto per verificare.
  • RSA ed ECDSA (RS256, PS256, ES256 e affini): schemi asimmetrici. Una chiave privata firma e una chiave pubblica verifica. Fornisci la chiave pubblica in formato PEM per verificare: non ti serve mai la chiave privata solo per controllare un token.

Questo strumento rileva l’algoritmo dall’header automaticamente e verifica interamente nel tuo browser con la Web Crypto API, così né il token né la chiave vengono mai caricati.

Leggere i claim standard

Alcuni nomi di claim sono standardizzati (si chiamano "registered claims"). Lo strumento li etichetta e converte quelli basati sul tempo da timestamp Unix grezzi alla tua ora locale, con uno stato in linguaggio chiaro così vedi a colpo d’occhio se un token è attivo, scaduto o non ancora valido:

  • exp — scadenza: dopo questo momento il token dovrebbe essere rifiutato.
  • nbf — not before: il token non è valido fino a questo momento.
  • iat — issued at: quando il token è stato creato.
  • iss — issuer: chi ha creato il token.
  • sub — subject: chi o cosa riguarda il token (spesso un ID utente).
  • aud — audience: a chi è destinato il token.
  • jti — un identificatore univoco per il token.

Domande frequenti

Il mio token o la mia chiave vengono inviati da qualche parte?
No. La decodifica e la verifica della firma vengono eseguite interamente nel tuo browser con la Web Crypto API. Il token, il segreto e la chiave pubblica non lasciano mai il tuo dispositivo, quindi è sicuro ispezionare token di produzione.
Quali algoritmi di firma può verificare?
HMAC (HS256, HS384, HS512) con un segreto condiviso, e RSA (varianti RS e PS) ed ECDSA (ES256, ES384) con una chiave pubblica in formato PEM. L’algoritmo viene rilevato automaticamente dall’header del token.
Un JWT è crittografato?
No. Un JWT firmato standard è solo codificato, non crittografato: chiunque può leggerne header e payload. La firma dimostra che il token non è stato alterato, ma non ne nasconde il contenuto, quindi non memorizzare mai segreti nel payload.
Mi serve la chiave privata per verificare un token RS256?
No. Gli algoritmi asimmetrici verificano con la chiave pubblica. La chiave privata serve solo per creare (firmare) un token, mai per controllarlo.
Perché il mio token risulta scaduto?
Il claim exp è nel passato rispetto all’orologio del tuo dispositivo. Lo strumento converte exp, nbf e iat alla tua ora locale e mostra uno stato per confermare a colpo d’occhio la finestra di validità del token.
Qual è la differenza tra HS256 e RS256?
HS256 è simmetrico: un unico segreto condiviso firma e verifica, il più semplice quando la stessa parte fa entrambe le cose. RS256 è asimmetrico: una chiave privata firma e una pubblica verifica, il che consente a molte parti di verificare i token senza poterli falsificare.
Posso modificare il payload e rifirmare il token?
Questo strumento è di sola lettura: decodifica e verifica, ma non crea né rifirma token. Questo lo mantiene focalizzato ed evita di gestire chiavi di firma private.