Guide
Alternative a jwt.io: decoder JWT online a confronto
jwt.io è l’implementazione di riferimento. Usa un decoder solo lato client quando il token contiene credenziali reali.
By Buğra SözeriPublished
I JWT (JSON Web Token) sono tre segmenti codificati in Base64url separati da punti. L’intestazione e il payload non sono crittografati — sono leggibili da chiunque abbia il token. Decodificarli non richiede nient’altro che una decodifica Base64url e un parse JSON. La domanda non è se puoi decodificarlo, ma dove — e se lo strumento che scegli introduce un rischio inutile.
Cosa fa molto bene jwt.io
jwt.io è mantenuto da Auth0 (ora Okta) ed è la cosa più vicina a uno strumento di riferimento ufficiale che l’ecosistema JWT abbia. I suoi punti di forza sono notevoli:
- Verifica della firma — incolla un segreto (HMAC) o una chiave pubblica (RSA, ECDSA, EdDSA) e jwt.io verificherà se la firma del token è valida.
- Copertura degli algoritmi — HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512, Ed25519/Ed448.
- Conformità RFC — lo strumento è mantenuto da persone che hanno contribuito alle specifiche JWT.
- Elenco di librerie — il fondo di jwt.io elenca librerie JWT open-source per 30+ linguaggi con link ai loro repository.
- Fiducia dell’ecosistema — gli URL di jwt.io sono lo standard de-facto per la condivisione di spiegazioni di token nella documentazione, nelle risposte Stack Overflow e nelle guide di riferimento API.
La preoccupazione per la privacy
jwt.io afferma di funzionare interamente nel browser. Auth0 ha confermato che i dati del token non vengono inviati ai loro server durante la decodifica. Questo è quasi certamente vero per l’operazione di decodifica e visualizzazione principale.
Tuttavia, jwt.io carica JavaScript di terze parti — analytics, monitoraggio e script pubblicitari — che sono al di fuori del controllo di Auth0 a livello di rete. I ricercatori di sicurezza e i membri della community hanno sollevato questa preoccupazione su GitHub e nei forum di sicurezza: uno script caricato da un CDN di terze parti potrebbe, in linea di principio, leggere il DOM.
Il decoder JWT di Convertitive è strettamente lato client. La pagina non contiene script di analytics che leggono i campi di input, e nessun dato del token lascia il browser. Questa è una differenza significativa per i token che sono a basso rischio ma non del tutto usa e getta — token di sviluppo, credenziali di staging, JWT demo.
Cosa il decoder JWT di Convertitive non fa
Convertitive non supporta la verifica della firma, e questo è intenzionale.
La verifica della firma richiede di fornire un segreto condiviso (HMAC) o una chiave pubblica (RSA/ECDSA). Inserire uno dei due in uno strumento basato su browser è un anti-pattern di sicurezza: i segreti appartengono ai gestori di segreti, non ai campi di input del browser.
RFC 7519 §10 lo affronta esplicitamente: “Le chiavi usate per firmare o verificare JWT DEVONO essere tenute segrete e NON DEVONO essere condivise.” RFC 8725 va oltre, notando che gli attacchi di confusione degli algoritmi diventano banalmente sfruttabili quando la validazione è delegata a superfici non affidabili.
Confronto delle funzionalità
| Funzionalità | jwt.io | token.dev | Convertitive |
|---|---|---|---|
| Decodifica intestazione + payload | Sì | Sì | Sì |
| Verifica della firma | Sì — tutti i principali algoritmi | Sì — HMAC e RSA | No (per design) |
| Visualizzazione exp / iat leggibile dall’uomo | Sì | Sì | Sì |
| Copertura degli algoritmi | Molto ampia — 12+ algoritmi | Moderata | Solo visualizzazione (nessuna verifica) |
| Script di analytics di terze parti | Sì (Auth0 / Okta analytics) | Minimi | No |
| Dati token inviati al server | No (solo lato client dichiarato) | No | No (verificato solo lato client) |
| Elenco di riferimento librerie | Sì — 30+ linguaggi | No | No |
| Supporto JWE (token crittografato) | No | No | No |
| Uso offline (dopo il primo caricamento) | Parziale | Sì | Sì |
| Manutentore | Auth0 / Okta | Community | Convertitive |
Quando usare jwt.io
- Hai bisogno di verificare una firma durante lo sviluppo e stai usando una chiave di sviluppo o di test (mai un segreto di produzione).
- Hai bisogno dell’elenco di riferimento delle librerie per scegliere un’implementazione JWT per il tuo stack.
- Vuoi condividere un link alla spiegazione di un token con un collega — i link jwt.io sono universalmente compresi dagli ingegneri.
- Stai effettuando il debug di un token demo o sintetico senza credenziali reali e vuoi l’interfaccia più completa.
Quando usare il decoder JWT di Convertitive
- Il token è un token di sviluppo o staging che non vuoi esporre a nessuno script di terze parti, anche con basso rischio.
- Hai solo bisogno di leggere le claim del payload — scadenza, soggetto, ruoli — e non hai bisogno della verifica della firma.
- Stai controllando un formato di token (controllo dell’algoritmo dell’intestazione, verifica dei nomi delle claim) e non hai bisogno del set completo di funzionalità di jwt.io.
Il riepilogo onesto
jwt.io è lo strumento migliore se hai bisogno della verifica della firma o vuoi l’esperienza di riferimento JWT più completa. È mantenuto da persone con profonda competenza nella specifica JWT, e il suo elenco di librerie è genuinamente utile.
Il decoder di Convertitive è la scelta migliore quando vuoi garantire nessuna interazione di script di terze parti con il tuo token, o quando hai solo bisogno dell’ispezione dell’intestazione e del payload senza la complessità della verifica della firma. Fa meno — deliberatamente.
Per qualsiasi token contenente credenziali di produzione reali: non usare nessuno dei due. Usa la riga di comando.
Frequently asked questions
- jwt.io può verificare una firma JWT?
- Sì — jwt.io supporta la verifica della firma. Incolli il tuo token, selezioni l’algoritmo e fornisci un segreto (per HMAC) o una chiave pubblica (per RSA/ECDSA). Il decoder di Convertitive non supporta la verifica della firma, per design: inserire una chiave di firma o una chiave privata in qualsiasi strumento basato su browser è un anti-pattern di sicurezza per RFC 7519 §10.
- jwt.io invia il mio token ai server Auth0?
- jwt.io è pubblicizzato come eseguito interamente nel browser. Auth0 (il manutentore) afferma che non vengono effettuate richieste al server per la decodifica. Tuttavia, la pagina carica script JavaScript di terze parti — analytics, monitoraggio e script pubblicitari — che creano una superficie di rischio non nulla. Se il token contiene credenziali di produzione, usare uno strumento offline o un comando locale è l’opzione più sicura.
- Perché Convertitive non supporta la verifica della firma?
- RFC 7519 §10 avverte esplicitamente contro la condivisione delle chiavi di firma. Uno strumento basato su browser che accetta un segreto o una chiave privata normalizza la pratica di inserire credenziali in moduli web. Convertitive decodifica solo l’intestazione e il payload — la porzione di un JWT che è sempre codificata in Base64url senza crittografia e non porta segreti di firma.
- Un JWT è crittografato?
- I JWT standard (JWS, JSON Web Signature) sono firmati ma non crittografati — l’intestazione e il payload sono codificati in Base64url e visibili a chiunque abbia il token. I token JWE (JSON Web Encryption) sono crittografati. Se il tuo token inizia con eyJ e ha tre parti separate da punti, è un JWS e la sua intestazione e payload possono essere decodificati senza alcuna chiave.
- Posso decodificare un JWT dalla riga di comando?
- Sì. In Node.js: node -e "const t='TUO_TOKEN'; console.log(JSON.parse(Buffer.from(t.split('.')[1],'base64url').toString()))". Con jq e base64: echo TUO_TOKEN | cut -d. -f2 | base64 -d | jq. Questi non richiedono connessione di rete e sono l’approccio consigliato per i token che contengono credenziali di produzione.
- Cosa significa ‘exp’ nel payload di un JWT?
- exp è il timestamp di scadenza POSIX definito in RFC 7519 §4.1.4. È un Unix timestamp (secondi dall’1-1-1970T00:00:00Z). Sia jwt.io che Convertitive lo visualizzano come datetime leggibile dall’uomo.
Related
Published May 31, 2026