Decoder JWT
Decodifica un JSON Web Token e leggi header, payload e claim in un formato leggibile, con un controllo immediato della scadenza del token. La decodifica è
Incolla un JSON Web Token e leggi le sue tre parti in forma leggibile: l'header con l'algoritmo di firma, il payload con i claim e i timestamp leggibili di emissione, non prima e scadenza. Lo strumento ti dice subito se il token è scaduto e quando lo sarà.
È il passaggio di debug di tutti i giorni quando un'API risponde 401 e devi capire se il problema è la firma, il pubblico o semplicemente un token scaduto. Tutto viene decodificato nel tuo browser, quindi i token di produzione non vengono mai inviati da nessuna parte.
Come decodificare un JSON Web Token
Incolla il token
Leggi l'header, il payload e la scadenza
Copia il JSON del payload se ti serve
FAQ
Questo strumento verifica la firma?
No, e la cosa conta. La decodifica si limita a decodificare in base64url le parti, quindi il contenuto è leggibile ma non provato autentico. Non considerare mai attendibile un token decodificato finché il tuo server non ha verificato la firma.
Come faccio a sapere se il token è scaduto?
Il claim exp è un timestamp Unix in secondi e lo strumento lo confronta con l'ora attuale, mostrando la data e se il token è ancora valido.
Qual è la differenza tra exp, iat e nbf?
iat è il momento in cui il token è stato emesso, nbf è il momento più vicino in cui può essere usato ed exp è quando smette di essere valido. Un token è accettabile solo tra nbf ed exp.
È sicuro incollare qui un token vero?
La decodifica avviene interamente nel tuo browser, quindi il token non viene trasmesso. Considera comunque ogni token come una credenziale: non incollarlo in un sito di cui non ti fidi e ruotalo se può essere trapelato.
Perché il mio token mostra un errore?
Un JWT ha esattamente tre parti separate da punti. Una parte mancante, un'interruzione di riga nel mezzo o un token che in realtà è un ID di sessione opaco vengono tutti segnalati come non JWT.
Il mio token viene caricato?
No, la decodifica è locale.
In breve
| Input | testo |
|---|---|
| Più file | No |
| Dove funziona | Nel tuo browser - i file non vengono mai caricati |
| Funziona offline | Sì — una volta caricata la pagina |
| Prezzo | Gratis, senza registrazione, senza filigrana |
Gestire i segreti in sicurezza
Gli strumenti per sviluppatori trattano credenziali molto più spesso di quanto si pensi, e il rischio non è l'algoritmo ma dove finiscono i dati. L'hashing è unidirezionale e non è cifratura - MD5 e SHA-1 sono compromessi per qualunque uso di sicurezza, e anche SHA-256 è lo strumento sbagliato per conservare password, dove bcrypt, scrypt o Argon2 esistono proprio per essere lenti. Il Base64 è una codifica, non una protezione: chiunque può decodificarlo, quindi non considerarlo mai offuscamento. Un JWT può essere letto da chiunque lo possieda, per questo il payload non deve mai contenere segreti, e decodificare un token non ne verifica la firma - la verifica richiede la chiave. Tutto su questo sito gira localmente nel tuo browser, ed è proprio per questo che può gestire token e password in sicurezza.
Dove le conversioni si rompono in silenzio
La maggior parte dei bug di conversione non riguarda la sintassi, riguarda il significato. Una colonna CSV di codici postali perde gli zeri iniziali nel momento in cui un foglio di calcolo intuisce che è un numero; un ID lungo supera la precisione in virgola mobile; le date cambiano significato a seconda che siano giorno-mese o mese-giorno. Le chiavi JSON non sono ordinate, gli array invece sì, e uno strumento che ordina le chiavi non cambia nulla mentre uno che ordina gli array cambia i dati. Unicode è un'altra trappola: il testo può arrivare in UTF-8, in UTF-16 o con un BOM, e un decodificatore che indovina male trasforma i caratteri accentati in mojibake. Prima di fidarti di una conversione, controlla a campione la prima e l'ultima riga, ogni campo con zeri iniziali e ogni campo che contiene virgolette, virgole o a capo.