Decodificatore JWT

Leggi l'intestazione, i claim e la scadenza di un JSON Web Token nel tuo browser. Solo decodifica: nessuna firma viene verificata.

Gira interamente nel tuo browser. Non viene caricato, registrato o salvato niente.

Questo decodifica. Non verifica. Niente di quello che segue dice se il token è autentico. Chiunque abbia un token firmato può leggerne i claim, e chiunque può scrivere un token che assomiglia a questo. Verifica la firma nella tua applicazione, con la tua chiave.

Tre parti separate da punti. Non viene inviato niente da nessuna parte.

Incolla un token e vedi la sua intestazione, i suoi claim e la sua scadenza. La decodifica avviene nel tuo browser: il token non viene inviato, registrato o salvato.

Questo strumento non controlla la firma, e niente di quello che ti mostra significa che il token sia autentico.

Come funziona

Un JSON Web Token sono tre parti codificate in base64url separate da punti: un'intestazione che dice quale algoritmo l'ha firmato, un payload di claim e una firma sulle prime due. Le prime due sono codificate, non cifrate: chiunque abbia il token può leggerle, che è esattamente quello che succede qui.

I claim temporali registrati sono mostrati come date leggibili: `exp` quando smette di essere valido, `nbf` quando comincia, `iat` quando è stato emesso. Vengono confrontati con il tuo orologio per dire in che punto della sua finestra si trova il token.

La firma è mostrata com'era scritta e non viene decodificata. È una firma su byte, non su testo, e mostrarla come caratteri farebbe pensare che dica qualcosa.

Esempi

Caso Dati inseriti Risultato
Un token che dichiara di non avere firma eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0NTY3ODkwIn0. alg none, typ JWT, sub 1234567890

Domande frequenti

Perché non verifica la firma?

Perché verificare richiede la chiave di firma, e una pagina che te la chiedesse ti starebbe chiedendo di incollare in un sito il segreto che protegge il tuo sistema. C'è anche un motivo più sottile: un decodificatore che sembrasse verificare ti inviterebbe a fidarti di un payload che chiunque avrebbe potuto scrivere. Verifica nella tua applicazione, con la tua chiave.

Un JWT è cifrato?

No. Un token firmato è codificato, che non è la stessa cosa: chiunque lo abbia può leggere ogni suo claim, senza bisogno di chiave. Non mettere mai in un token niente che chi lo porta non debba vedere. I token cifrati esistono — hanno cinque parti invece di tre — e questo strumento non li sa leggere.

Cosa vuol dire un algoritmo «none»?

Che il token non porta nessuna firma. È l'attacco più antico contro i JWT: togliere la firma, mettere `alg` a `none` e sperare che la libreria ricevente lo accetti. La pagina segnala un token del genere; se ne stai vedendo uno che non hai creato tu, trattalo come ostile.

Il mio token esce dal browser?

No. La decodifica gira in locale in JavaScript, e non c'è un link da condividere per questo strumento, perché un link metterebbe il token in un URL, dove finirebbe nella cronologia del browser e nei log del server.

Da sapere

  • Solo decodifica. Nessuna firma viene verificata, e niente in questa pagina dice se un token è autentico.
  • Il token viene decodificato nel tuo browser e non viene mai inviato, registrato o salvato. Lo strumento ha bisogno di JavaScript; senza, non c'è nessuna decodifica.
  • Un token firmato è leggibile da chiunque lo abbia. Tratta ogni suo claim come pubblico.

Fonti

Tutti gli strumenti di Codice