Vai al contenuto

Decodificare e verificare JWT

Decodifica header e claim di un JSON Web Token, controlla la scadenza e verifica la firma: il token non lascia mai il tuo browser.

Decodificato e verificato in questa scheda: il token e le chiavi non vengono inviati da nessuna parte.

Header, claim e scadenza compaiono qui quando incolli un token.
Funziona nel tuo browser · nessun caricamentoCome funziona

Come usare Decodificatore JWT

  1. 1

    Incolla il token

    Incolla il JWT da un header Authorization, da un cookie o dallo storage della tua app; un «Bearer » iniziale viene ignorato.

  2. 2

    Leggi i claim

    Controlla le tabelle di header e payload, gli orari leggibili di exp, iat e nbf e il banner della scadenza.

  3. 3

    Aggiungi la chiave

    Inserisci il segreto HMAC, oppure incolla la chiave pubblica come PEM, certificato, JWK o JWKS.

  4. 4

    Verifica la firma

    Premi Verifica la firma per confermare che il token è stato firmato con quella chiave e non è stato modificato.

Limiti e Pro

Gratis, senza registrazione e senza limiti sul numero di token; la verifica supporta 13 algoritmi (HS, RS, PS ed ES a 256, 384 e 512 bit, più EdDSA).

Pro rimuove la pubblicità; decodifica e verifica sono identiche in tutti i piani. Scopri Pro

Informazioni su Decodificatore JWT

Un JSON Web Token è formato da tre stringhe Base64URL unite da punti: un header che indica l'algoritmo di firma, un payload con i claim e una firma. Incolla un token, con o senza il prefisso «Bearer », e il decodificatore mostra header e payload come tabella leggibile o come JSON formattato, colora le tre parti del token e spiega i campi standard come iss, sub, aud, kid e scope.

I claim temporali vengono convertiti per te: exp, iat, nbf e auth_time compaiono come data nel tuo fuso orario, in UTC e come tempo relativo («scade tra 2 ore», «scaduto 3 giorni fa»). Un banner ti dice subito se il token è scaduto, non ancora valido o senza scadenza, e ti avvisa quando exp sembra espresso in millisecondi invece che in secondi.

Decodificare non dimostra nulla su chi abbia emesso un token, quindi il verificatore controlla la firma con WebCrypto, già integrato nel tuo browser. HS256, HS384 e HS512 richiedono il segreto condiviso (testo semplice o Base64). Gli algoritmi RS, PS ed ES a 256, 384 e 512 bit, più EdDSA con Ed25519, richiedono la chiave pubblica, che puoi incollare come chiave pubblica PEM, blocco RSA PUBLIC KEY, certificato X.509, singola JWK o intero JWKS, dove la chiave viene scelta in base al kid del token.

Lo strumento non può decifrare i token JWE (quelli a cinque parti) e non scarica gli URL dei JWKS: apri tu il jwks_uri dell'emittente e incolla il relativo JSON.

Privacy

I token sono credenziali al portatore, e questa pagina li tratta come tali: la decodifica e il controllo della firma avvengono nel tuo browser con WebCrypto, e il token, il segreto e le chiavi non vengono mai inviati a un server, registrati o salvati. Chiudendo o ricaricando la scheda si cancella tutto.

Funzionalità

Orari leggibili

exp, iat e nbf nel tuo fuso orario, in UTC e come «tra 2 ore» o «3 giorni fa».

Vere verifiche della firma

HMAC, RSA, RSA-PSS, ECDSA ed Ed25519 verificati con WebCrypto rispetto alla tua chiave o al tuo JWKS.

Il token resta in locale

Non viene caricato nulla, quindi puoi esaminare in sicurezza i token di produzione.

Decodificatore JWT: domande frequenti

È sicuro incollare qui un token di produzione?
Il token viene decodificato e verificato da JavaScript eseguito nella tua scheda e non parte nessuna richiesta che lo contenga, come puoi controllare nel pannello di rete del browser. Un token valido però funziona come una password finché non scade: evita di incollarlo in siti di cui non ti fidi e, se condividi screenshot, preferisci token scaduti o di prova.
Perché un token decodificato non dimostra nulla?
Chiunque può creare un header e un payload e codificarli in Base64URL; la decodifica fa solo il percorso inverso. Solo la firma lega il token a chi lo ha emesso. Verificala con la chiave pubblica dell'emittente o con il segreto condiviso prima di fidarti di un claim, e controlla che alg sia quello atteso dal tuo server: accettare «none» o un algoritmo sostituito è una classica vulnerabilità.
Dove trovo la chiave pubblica per verificare un token RS256 o ES256?
I provider di identità pubblicano le chiavi come JWK Set. Cerca l'indirizzo /.well-known/openid-configuration dell'emittente, apri il jwks_uri indicato e incolla qui quel JSON: viene usata la chiave il cui kid corrisponde all'header del token. Puoi anche incollare una chiave pubblica PEM o il certificato X.509 dell'emittente.
Cosa significano exp, iat e nbf?
Sono claim di tipo NumericDate, contati in secondi dal 1° gennaio 1970 UTC. exp indica quando il token smette di essere valido, iat quando è stato emesso e nbf il momento più vicino in cui può essere accettato. I server di solito tollerano un minuto o due di differenza degli orologi. Il decodificatore mostra ciascuno come data locale, timestamp UTC e tempo relativo.
Perché la verifica fallisce anche con il segreto HMAC giusto?
Le cause comuni sono spazi copiati insieme al segreto, un segreto che al momento della firma era codificato in Base64, o un token ricodificato da uno strumento che ha cambiato i byte di header o payload. Prova l'opzione «Il segreto è codificato in Base64». Qualsiasi modifica alle prime due parti, anche solo l'ordine delle chiavi JSON, invalida la firma.