Decoder JWT: visualizza header, payload e scadenza

Decodifica istantaneamente i JSON Web Token (JWT). Visualizza header e payload in modo sicuro.

Decoder JWT

Segnala un Problema

Trovato un bug o un suggerimento per Decoder JWT: visualizza header, payload e scadenza? Faccelo sapere!

Come funziona questo decoder JWT

Un JSON Web Token racchiude tre parti in un'unica stringa: header, payload e firma. Questo decoder separa un token codificato in queste tre parti, converte header e payload di nuovo in JSON leggibile ed estrae l'algoritmo, la data di emissione e la data di scadenza, così puoi esaminare un token senza scrivere codice.

Header, payload e firma

Un token è diviso in tre parti da due punti: header.payload.firma. Le prime due parti sono JSON codificato in base64url, quindi decodificarle è un'operazione reversibile, non una cifratura. L'header indica l'algoritmo di firma, il campo alg, per esempio HS256 o RS256, e il tipo di token. Il payload contiene i claim: un identificativo del soggetto, eventuali campi personalizzati e di solito iat (momento di emissione) ed exp (momento di scadenza) salvati in secondi Unix. La firma è un valore crittografico calcolato da header e payload; verificarla richiede la chiave segreta o privata che l'ha creata, quindi leggere il contenuto di un token è un'operazione diversa dal verificarne l'autenticità. Alcuni token sono firmati con alg impostato su none e hanno solo due parti, header.payload; il decoder accetta anche questa forma più breve e lascia vuoto il segmento della firma. Il base64url si distingue dal base64 comune perché usa un trattino e un trattino basso al posto del più e della barra, e di solito fa a meno del segno di uguale usato come riempimento.

Esempio pratico

Incolla un token come quello qui sotto: si separa in tre segmenti colorati, poi header e payload compaiono come JSON formattato.

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI3MDI5Mzg0NzU2IiwibmFtZSI6IkdpdWxpYSBSb3NzaSIsImlhdCI6MTY5NDY5MjgwMCwiZXhwIjoxNzAyNDY4ODAwfQ.TkH70N2p4MNgYrOH8LeTdsh5Ovc

{
  "alg": "HS256",
  "typ": "JWT"
}

{
  "sub": "7029384756",
  "name": "Giulia Rossi",
  "iat": 1694692800,
  "exp": 1702468800
}

Il badge Algorithm mostra HS256, letto dall'header. Il valore iat corrisponde al 14 settembre 2023 e il valore exp al 13 dicembre 2023; poiché questa data è già passata, il badge Status mostra EXPIRED. Niente di tutto questo avviene su un server: la decodifica funziona nel browser, e lo strumento non verifica mai se la firma è autentica perché non ha accesso alla chiave che l'ha creata.

Domande Frequenti