Decodifica JWT: leggi e verifica un JSON Web Token
Per decodificare un JWT incolla il token: lo strumento mostra che cosa contiene un JSON Web Token – intestazione, payload e firma, con emittente, scadenza e validità in chiaro. Se inserisci il segreto o la chiave pubblica, verifica anche la firma. Il token non lascia il tuo browser.
Fonte: §§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT). Aggiornato al: .
Come si calcola
Un JSON Web Token (JWT) trasporta dichiarazioni (claim) tra due parti – tipicamente dopo il login, come prova che «questo utente è connesso». Ha tre parti separate da punti: intestazione.payload.firma (RFC 7519, RFC 7515).
Come decodificare un JWT
- Incolla il token nel campo in alto (con o senza «Bearer»).
- Intestazione e payload compaiono subito come JSON leggibile, con scadenza ed emittente sotto.
- Facoltativo: inserisci la chiave in «Segreto o chiave pubblica» e lo strumento verifica la firma.
Che cosa contiene un token
- Intestazione: l’algoritmo (
alg, per esempio HS256 o RS256) e il tipo (typ). - Payload: i claim. Tra quelli registrati ci sono
iss(emittente),sub(soggetto),aud(destinatario),exp(scadenza),nbf(non prima di),iat(emesso il) ejti(ID). Le date sono secondi dal 1970; lo strumento le mostra in UTC. - Firma: protegge dalle modifiche se il destinatario la verifica con la chiave giusta.
Importante: leggere non è verificare
Intestazione e payload sono solo codificati in base64url, non cifrati. Chiunque veda un token può leggerlo: password e altri segreti non ci devono stare. Senza verifica della firma il contenuto non dimostra nulla, perché chiunque può modificarlo. La verifica qui funziona con un segreto HMAC (HS256/384/512) e con una chiave pubblica (RS, PS, ES); un token con alg: none non è firmato.
Protezione dall’algorithm confusion
Un attacco noto consegna al server un token con alg: HS256 firmato usando la chiave pubblica come segreto. Lo strumento quindi rifiuta la verifica se come segreto HS viene inserita una chiave pubblica o privata (la RFC 8725 consiglia di non ricavare mai l’algoritmo dal solo token).
Limiti
- I token cifrati (JWE, cinque parti) non si leggono senza la chiave; viene mostrata solo l’intestazione.
- Non è inclusa la verifica per EdDSA né per i certificati. Se un token è valido per la tua applicazione dipende da emittente, destinatario e scadenza, che il tuo server deve controllare da sé.
- I token di produzione vanno solo su dispositivi fidati. Qui nulla viene inviato o salvato, ma un token scaduto o di prova è la scelta più sicura.
Domande frequenti
Che cos’è un JWT?
Un JSON Web Token è una stringa compatta e sicura per gli URL, in tre parti (intestazione, payload, firma). Trasporta claim come l’ID utente o la scadenza ed è spesso usato come prova di accesso dopo il login.
Chiunque può leggere il contenuto di un JWT?
Sì. Intestazione e payload sono solo codificati in base64url, non cifrati. Solo la firma protegge dalle modifiche, non dalla lettura. Non mettere quindi segreti in un JWT.
Come verifico la firma di un JWT?
In «Segreto o chiave pubblica» inserisci il segreto per HS256/384/512, oppure la chiave pubblica in PEM o JWK per RS256, PS256 o ES256. Il risultato compare in «Firma».
È sicuro incollare il mio token in un decoder online?
Questo decoder lavora interamente nel tuo browser e non invia nulla. Tuttavia un token valido è una prova di accesso. Usa, se puoi, token di prova o già scaduti.
Che cosa significano exp, iat e nbf?
exp è l’istante in cui il token scade, iat quello di emissione e nbf l’istante da cui è valido. Tutti e tre sono secondi dal 1° gennaio 1970 UTC.
Perché lo strumento dice «non verificata»?
Senza chiave non c’è nulla con cui controllare la firma, quindi il contenuto è solo letto. Anche algoritmi non supportati o formati di chiave non adatti saltano la verifica.
Fonti e riferimenti normativi
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
Aggiornato al: · Principi editoriali
Strumenti correlati
- Codifica e decodifica Base64Codifica e decodifica Base64 e Base64url con UTF-8 corretto, più URL encode/decode (percent-encoding). Errori chiari, tutto in locale nel tuo browser.
- Generatore di hash: SHA-256, SHA-512, SHA-1, MD5Calcola gli hash SHA-256, SHA-384, SHA-512, SHA-1 e MD5 di un testo o di un file e verifica un checksum – in locale nel browser, senza upload, gratis.
- Formattatore JSON: formattare, convalidare e minificareConvalida il tuo JSON secondo la RFC 8259: errore con riga, colonna e spiegazione chiara. Formatta, minifica e ordina le chiavi. Tutto nel browser.
- Convertitore di timestamp UnixConverti un timestamp Unix in data e viceversa: rileva automaticamente secondi, millisecondi, micro e nanosecondi; mostra UTC, ora locale, ISO 8601 e altro.
- Generatore UUID: crea e verifica UUID v4 e v7Genera UUID online: versione 4 (casuale) o versione 7 (ordinata nel tempo), fino a 1000 alla volta. Verifica un UUID e leggi versione, variante e data.
- Generatore di passwordCrea password casuali sicure e passphrase facili da ricordare, con entropia in bit, direttamente nel browser: niente viene inviato né salvato.
- Qual è il mio indirizzo IP?Mostra subito il tuo indirizzo IP pubblico, rileva IPv4 o IPv6 e spiega la differenza. Gratis, senza registrazione – il tuo IP non viene mai salvato.
- Minificare JavaScriptMinificare JavaScript: togli commenti e spazi, riduci il codice e guarda il risparmio in byte. Nel browser, senza caricamento.
- Minificare CSS: comprimere, formattare e inserire il CSS nell’HTMLMinificare CSS e formattarlo, più inserire il CSS nell’HTML per le email: trasformazioni sicure, errori con numero di riga, nel browser senza caricare nulla.