Skip to content
Decodificatore JWT
Tools

Decodificatore JWT

Novità

Decodifica un JSON Web Token, ispeziona i claim e verifica le firme HS256 in locale.

A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.

Runs entirely in your browser. Nothing is uploaded.

Decodifica qualsiasi JSON Web Token nel tuo browser

Questo decodificatore JWT trasforma una stringa opaca eyJ… in JSON leggibile all'istante. Incolla un JSON Web Token e lo divide ai punti, decodifica in Base64URL l'intestazione e il payload, e li visualizza entrambi affiancati e formattati, con la firma grezza mostrata separatamente. È il modo più veloce per eseguire il debug di un flusso di autenticazione, ispezionare un token dalla risposta di un'API o confermare esattamente quali claim sta emettendo il tuo backend.

Ogni parte del token ha un codice colore — intestazione, payload e firma — così le tre sezioni di header.payload.signature sono facilmente distinguibili a colpo d'occhio. Nessun account richiesto, nessun caricamento su server e nessun limite giornaliero di decodifiche.

Leggi i claim e controlla la scadenza in un colpo d'occhio

Il decodificatore evidenzia i claim registrati standard definiti nell'RFC 7519 — iss, sub, aud, exp, nbf, iat e jti — in una tabella chiara con il significato in linguaggio semplice per ognuno. I tre claim temporali sono secondi dell'epoca Unix, che è facile leggere erroneamente, quindi lo strumento li converte nella tua data e ora locale e aggiunge un suggerimento relativo come 'emesso 5 minuti fa' o 'scade tra 59 minuti'.

La cosa più importante è che risponde alla domanda che di solito apri un debugger JWT per porre: questo token è ancora valido? Il claim exp viene confrontato con l'ora corrente e il token viene automaticamente contrassegnato come Valido o Scaduto, rispettando anche nbf, così puoi vedere immediatamente se un token scaduto è il motivo per cui una richiesta viene rifiutata.

Verifica la firma — HS256, RS256 ed ES256

Decodificare mostra cosa afferma un token; verificare prova che puoi fidarti di esso. Questo strumento è anche un verificatore di firme JWT: legge l'algoritmo dall'intestazione e verifica la firma localmente con la Web Crypto API del browser. Per HS256, HS384 e HS512 fornisci il segreto HMAC condiviso; per RS256, PS256 e ES256 (e le loro varianti 384/512) incolli la chiave pubblica dell'emittente in formato PEM.

Poiché i calcoli vengono eseguiti sul tuo dispositivo, puoi confermare che un token è autentico — che nessuno ha alterato il payload — senza inviare il token, il segreto o la chiave a nessun server. Un segno di spunta verde significa che la firma corrisponde; una croce rossa significa che il token è stato modificato o stai usando la chiave sbagliata.

Costruisci e codifica un JWT

Hai bisogno di andare nella direzione opposta? Il codificatore JWT integrato ti permette di creare un token da zero. Modifica l'intestazione e il payload come JSON, scegli un algoritmo HMAC, inserisci un segreto e produce un token header.payload.signature correttamente firmato pronto per essere copiato in una richiesta o in un test. Pratici tasti rapidi aggiungono claim iat e exp aggiornati affinché i token di test abbiano timestamp realistici.

Questo rende UtiloKit un decodificatore e codificatore jwt combinato — ispeziona i token che arrivano dalla tua API e crea nuovi token da inviare, tutto nello stesso posto. È lo stesso flusso di lavoro che gli sviluppatori usano con jwt.io, ma senza coinvolgimento del server e senza bisogno di account.

Confronto con jwt.io, token.dev e jwtdecode.com

jwt.io è lo strumento JWT più riconosciuto sul web — sviluppato da Auth0, ampiamente linkato nella documentazione e affidabile per milioni di sviluppatori. La sua principale limitazione è la privacy: jwt.io invia il tuo token ai server di Auth0 in alcune configurazioni.

token.dev e jwtdecode.com coprono la decodifica di base ma non supportano la verifica delle firme RS256/ES256 con una chiave PEM — l'algoritmo utilizzato da Auth0, Google, Microsoft Azure AD, Okta e la maggior parte dei provider OIDC aziendali.

Questo decodificatore di UtiloKit gestisce tutto questo nel browser: decodifica, controllo della scadenza e verifica completa delle firme per le famiglie di algoritmi HS/RS/PS/ES — gratuito, senza account, senza limite giornaliero e senza che nulla lasci il tuo dispositivo.

Sicurezza JWT: cosa può e non può proteggere il token

Un JWT è firmato per l'integrità, non crittografato per la riservatezza. Chiunque abbia il token può leggere ogni claim nel payload — la codifica Base64URL è banalmente reversibile, come dimostra questo decodificatore. Quindi il payload dovrebbe contenere solo identificatori non sensibili: un ID utente, un ruolo o un'email. Non inserire mai password, dati di pagamento o chiavi API in un payload JWT.

La firma protegge dalla manomissione: se un attaccante modifica anche un solo carattere del payload, la firma non corrisponderà più e qualsiasi server che verifichi con la chiave corretta rifiuterà il token. Il classico attacco alg: none aggira questo affermando che non viene utilizzato nessun algoritmo — una vulnerabilità ben nota (CVE-2015-9235) che qualsiasi libreria JWT di produzione dovrebbe bloccare.

Mantieni brevi i tempi di vita dei token usando exp, trasmetti tramite HTTPS, archivia in memoria o in cookie httpOnly (non localStorage), e verifica le firme a ogni richiesta. Decodifica e ispeziona i tuoi token con questo strumento gratuito per confermare che queste proprietà siano impostate correttamente prima di distribuire in produzione.

Frequently asked questions

Cos'è un JWT (JSON Web Token)?

Un JWT è un modo compatto e sicuro per URL di trasportare informazioni firmate tra due parti — più spesso un token di accesso. Sono tre parti codificate in Base64URL unite da punti: header.payload.signature. L'intestazione nomina l'algoritmo di firma, il payload contiene i claim (dati), e la firma permette al ricevente di confermare che il token non è stato manomesso. I JWT vengono utilizzati da OAuth 2.0, OpenID Connect, Auth0, Firebase, Supabase, AWS Cognito e dalla maggior parte dei sistemi di autenticazione moderni.

Come si decodifica un JWT?

Dividi il token ai due punti e decodifica in Base64URL le prime due parti. L'intestazione e il payload sono JSON semplice una volta decodificati; la terza parte (la firma) rimane binaria. Questo strumento lo fa istantaneamente — incolla il token e l'intestazione e il payload decodificati appaiono formattati. Nulla viene inviato da nessuna parte; la decodifica viene eseguita nel tuo browser. Non hai bisogno del segreto o della chiave privata per decodificare un JWT.

È sicuro decodificare un JWT online?

Con questo strumento, sì — ogni byte viene decodificato localmente nel tuo browser usando JavaScript, e il tuo token non tocca mai un server, un log o una richiesta di rete. Tutto viene elaborato lato client senza backend e senza tracciamento analitico del contenuto del token. Detto ciò, un JWT rimane una credenziale: non incollare un token di produzione attivo su nessun sito web di cui non ti fidi.

Cosa contiene un JWT?

Tre parti. L'intestazione è JSON che descrive il tipo e l'algoritmo di firma, es. {"alg":"HS256","typ":"JWT"}. Il payload è JSON che contiene i claim — sia quelli registrati (sub, exp, iat…) che dati personalizzati come ruoli o un ID utente. La firma è un hash con chiave dell'intestazione e del payload che prova che non sono stati modificati. Solo la firma ha bisogno di un segreto o chiave; l'intestazione e il payload sono semplicemente codificati in Base64URL, non crittografati.

Come verifico se un JWT è scaduto?

Leggi il claim exp — un timestamp Unix in secondi. Se exp è precedente all'ora corrente, il token è scaduto e deve essere rifiutato. Questo decodificatore converte exp in una data leggibile, mostra un tempo relativo come 'scaduto 3 ore fa' o 'scade tra 59 minuti', e contrassegna automaticamente il token come Valido o Scaduto.

Come verifico una firma JWT?

Decodifica l'intestazione per leggere alg, poi ricalcola la firma su header.payload e confronta. Per HS256/384/512 hai bisogno del segreto condiviso; per RS256, PS256 o ES256 hai bisogno della chiave pubblica dell'emittente in formato PEM. Questo strumento le verifica tutte localmente con la Web Crypto API — scegli l'algoritmo corrispondente, incolla il segreto o la chiave pubblica, e riporta se la firma è autentica.

Posso decodificare un JWT senza il segreto?

Sì. La decodifica legge solo l'intestazione e il payload codificati in Base64URL, che non richiedono alcuna chiave — ecco perché non dovresti mai mettere segreti in un payload JWT. Il segreto o la chiave pubblica è necessario solo per verificare la firma, cioè per provare che il token è genuino e non alterato. Decodificare ti dice cosa afferma un token; verificare ti dice se credergli.