Convertitore gratuito

Gettone JWT Decodificatore

Decodifica istantaneamente l'intestazione e il payload JWT (JSON Web Token) nel tuo browser. Gratuito, privato e lato client: nessun dato inviato a nessun server.

Informazioni su questo strumento

I JSON Web Token (JWT) sono un formato compatto e sicuro per gli URL per la trasmissione di attestazioni tra due parti, definito da RFC 7519. Un JWT è composto da tre segmenti con codifica base64url separati da punti: intestazione (algoritmo e tipo di token), payload (attestazioni) e firma (prova crittografica di autenticità). L'intestazione e il payload sono JSON, codificati base64url per la sicurezza dell'URL; la firma utilizza uno dei numerosi algoritmi (HS256, RS256, ES256 e altri) sull'intestazione codificata e sul payload.

La decodifica di un JWT, ovvero la sua suddivisione in segmenti e la decodifica base64 di ciascuno, non richiede alcun segreto. Chiunque abbia il testo del token può leggerne l'intestazione e il payload. La firma, però, può essere verificata solo con la chiave segreta (HMAC) o pubblica (asimmetrica). La decodifica è per l'ispezione; la verifica è ciò che dimostra l'autenticità.

Questo decodificatore divide il token, decodifica base64 ogni segmento, analizza l'intestazione e il payload come JSON e mostra il risultato. Non tenta la verifica della firma perché richiede la chiave segreta o pubblica, di cui il decodificatore non dispone. L'output decodificato è un'ispezione di sola lettura, utile per il debug dei token ma non sostitutiva della corretta verifica nel codice dell'applicazione.

Perché decodificare i JWT

Il debug dei problemi di autenticazione comporta quasi sempre l'ispezione dei token. Un token che sembra valido nel codice potrebbe contenere attestazioni errate, un algoritmo imprevisto, un timestamp scaduto o una mancata corrispondenza del pubblico. La decodifica del token rivela esattamente ciò che ha prodotto l'emittente.

Anche l'ispezione dei token durante il lavoro di integrazione aiuta. Quando ci si connette a un'API o a un provider di identità di terze parti, i nomi, i formati e la struttura delle attestazioni effettivi possono essere compresi meglio decodificando token di esempio anziché fare affidamento su documentazione che potrebbe essere obsoleta.

Come usarlo

Incolla il token, ottieni il contenuto analizzato.

  1. Incolla il tuo JWT: Rilascia il token completo (header.payload.signature) nell'area di input. Il decoder accetta token con o senza il prefisso Portatore opzionale.
  2. Ispeziona l'intestazione: L'intestazione mostra l'algoritmo di firma (alg) e il tipo di token (typ). Gli algoritmi comuni sono HS256, RS256 ed ES256. Fai attenzione ad alg: none, che segnala un token non firmato e raramente è sicuro in produzione.
  3. Ispezionare il carico utile: Il payload contiene le attestazioni: iss (emittente), sub (oggetto), aud (audience), exp (scadenza), iat (rilasciato a) ed eventuali attestazioni specifiche dell'applicazione. I timestamp standard sono secondi di epoca Unix.
  4. Verificare separatamente: Il decodificatore non verifica la firma. Per verificare l'autenticità, esegui il token tramite una libreria JWT con la chiave pubblica o segreta appropriata nel codice dell'applicazione.

Casi d'uso comuni

Dettagli tecnici

Il formato JWT è composto da tre segmenti uniti da punti. Ogni segmento è codificato con URL base64, la variante sicura per URL di base64 che utilizza - e _ invece di + e /, con il riempimento a volte omesso. La decodifica richiede l'annullamento delle sostituzioni URL-safe, il riempimento del segmento e la decodifica base64.

L'intestazione e il payload sono JSON dopo la decodifica. Il segmento della firma è binario (byte della firma grezza) e non è leggibile dall'uomo; richiede la chiave di verifica per essere utile.

Affermazioni comuni definite in RFC 7519: iss (emittente), sub (identificatore del soggetto), aud (pubblico), exp (scadenza come secondi di epoca Unix), nbf (marca temporale non precedente), iat (marca temporale emesso al), jti (ID token univoco). Le attestazioni specifiche dell'applicazione possono essere visualizzate con qualsiasi nome.

Migliori pratiche

Domande frequenti

È sicuro incollare il mio JWT qui?
SÌ. La decodifica avviene interamente nel tuo browser: il token non viene mai inviato a nessun server. Tuttavia, i JWT sono credenziali: non condividerli pubblicamente (in screenshot, post di Stack Overflow, ecc.) poiché potrebbero concedere l'accesso ai tuoi account.
Questo strumento verifica la firma JWT?
Questo strumento decodifica e visualizza il contenuto del token. La verifica della firma richiede la chiave segreta (HMAC) o la chiave pubblica (RSA/ECDSA), che dovrebbe rimanere sul tuo server. Lo strumento mostra l'algoritmo utilizzato ma non può verificare senza la chiave.
Cosa significano le affermazioni JWT standard?
iss = emittente, sub = soggetto (ID utente), exp = ora di scadenza (timestamp Unix), iat = emesso a, nbf = non prima, aud = pubblico, jti = ID JWT. Le attestazioni personalizzate possono contenere qualsiasi dato specifico dell'applicazione.
Perché qualcuno può decodificare un JWT?
I JWT sono codificati, non crittografati. Il payload è codificato Base64URL (non crittografato), quindi chiunque può leggerlo. La firma impedisce la manomissione, non la lettura. Non archiviare mai dati sensibili (password, SSN) nei payload JWT.
Perché ad alcuni token manca una firma?
Token con alg: nessuno non ha firma. Sono JWT validi per specifica ma non forniscono garanzie di autenticità e non dovrebbero essere accettati nella produzione.
I JWT sono crittografati?
I payload JWT standard sono firmati ma non crittografati. JWE (JSON Web Encryption, RFC 7516) è un formato separato per i token crittografati. La maggior parte dei JWT in natura sono JWS (solo firmati).
Il mio token è caricato su un server?
No. La decodifica avviene nel tuo browser; il token non lascia il tuo dispositivo.
Quanto durano in genere i JWT?
Da poche centinaia a diverse migliaia di caratteri. La lunghezza dipende dal numero e dalla dimensione delle rivendicazioni più la lunghezza della firma (che dipende dall'algoritmo).