Confronto · Aggiornato il 2026-05-05
Gli strumenti JWT di TaskKit vs jwt.io
Entrambi gli strumenti decodificano e verificano JSON Web Token interamente nel browser. Le differenze pratiche sono in ciò che ognuno carica accanto all'editor, in come si comportano davanti a una firma lenta o malevola, e in una manciata di funzionalità che uno ha e l'altro no. Il riepilogo qui sotto è misurato; il resto della pagina mostra il quadro completo.
Riepilogo
- Privacy: TaskKit fa 0 richieste a terze parti al primo paint. jwt.io ne fa 10 (consent OneTrust, Adobe Experience Platform, Google Tag Manager).
- Algoritmi e formati di chiave: identici in entrambi per la spec JWT — HS / RS / PS / ES / EdDSA, JWK e JWKS completo (con corrispondenza per
kid),x5c, PEM PKCS#1 / PKCS#8 / X.509. TaskKit accetta in più una chiave EdDSA come hex grezzo o stringa base64url. - Sicurezza runtime: TaskKit verifica le firme in un Web Worker con timeout di 2 secondi; un token ostile non può bloccare la pagina. jwt.io verifica sul thread principale.
- Dove jwt.io è più forte: una directory curata di librerie, una pagina introduttiva estesa e link per ogni claim agli RFC corrispondenti.
- Cosa TaskKit lascia fuori deliberatamente: il download automatico di un JWKS da un URL (richiederebbe una chiamata in uscita). Apri il decodificatore di TaskKit.
Privacy, misurata
Entrambi gli strumenti affermano di fare il loro lavoro nel browser. Quell'affermazione vale qualcosa solo se puoi verificarla. Ogni pagina qui sotto è stata caricata il 2026-05-05 in un profilo Chrome pulito con cache cancellata, e tutte le richieste di rete in uscita sono state contate prima ancora di premere un tasto. Lo stesso test gira contro il decodificatore JWT di TaskKit.
| Rete al primo paint | jwt.io | TaskKit |
|---|---|---|
| Richieste verso terze parti | 10 | 0 |
| SDK di consenso OneTrust | Caricato (5 chiamate) | No |
| Adobe Experience Platform / DTM | Caricato (3 chiamate) | No |
| Google Tag Manager | Caricato | No |
| Geo-lookup | Endpoint geo di onetrust.com | No |
| Banner di consenso cookie | Sì, blocca il paint iniziale fino alla conferma | Nessuno |
| Login obbligatorio per le funzionalità avanzate | No | No |
Ognuna di queste chiamate parte prima che tu incolli un token. Nessuna è necessaria perché la pagina decodifichi un JWT — sono analytics, tag management e flussi di consenso. TaskKit non invia niente di tutto ciò. Più informazioni su come TaskKit tratta i tuoi dati.
Matrice di funzionalità
Entrambi gli strumenti coprono praticamente tutta la spec JWT. Sotto, ciò che ognuno accetta oggi, raggruppato per categoria.
| Capacità | jwt.io | TaskKit |
|---|---|---|
| Algoritmi | ||
| HS256 / 384 / 512 | Sì | Sì |
| RS256 / 384 / 512 | Sì | Sì |
| PS256 / 384 / 512 | Sì | Sì |
| ES256 / 384 / 512 | Sì | Sì |
| EdDSA (Ed25519) | Sì | Sì (via @noble/ed25519) |
| Formati di chiave | ||
| JWK (singolo) | Sì | Sì |
| JWKS con lookup per kid | Sì | Sì |
| PEM SPKI (BEGIN PUBLIC KEY) | Sì | Sì |
| PEM PKCS#1 RSA (BEGIN RSA PUBLIC KEY) | Parziale | Sì (lettore ASN.1 interno) |
| Certificato X.509 (BEGIN CERTIFICATE) | Sì | Sì (SPKI estratto automaticamente) |
| Header x5c usato automaticamente | Sì | Sì (catena non validata, indicato esplicitamente) |
| EdDSA grezza come hex / base64url | No | Sì (64 hex o 43 base64url) |
| Sicurezza della verifica | ||
| Isolamento Web Worker | No | Sì |
| Timeout contro il backtracking catastrofico | No | Sì (2s) |
| alg:none rifiutato con spiegazione | Sì | Sì |
| Encoder | ||
| Modifica header / payload | Sì | Sì |
| Campi modulo per i claim registrati | No | Sì |
| Chiavi private PKCS#1 accettate direttamente | No | Sì (avvolte automaticamente in PKCS#8) |
| EdDSA privata come hex / base64url | No | Sì |
| Token di esempio con un clic | Sì | Sì (iat/exp correnti calcolati al volo) |
| Privacy / Runtime | ||
| Elaborazione integrale nel browser | Sì | Sì |
| Zero richieste a terze parti | No | Sì |
| Banner di consenso cookie | Sì | Nessuno |
| Cloudflare Web Analytics opzionale (privacy-preserving, off di default) | — | Off salvo che l'operatore lo attivi con un token |
Sicurezza runtime
Il verify di WebCrypto è veloce con firme ben formate. Con
input ostile non lo è. Esponenti RSA patologici, chiavi sovradimensionate,
firme Ed25519 corrotte o un JWKS costruito con cattive intenzioni
possono tenere occupato il verificatore abbastanza a lungo da bloccare
il tab — un rischio reale quando il token davanti a te viene da una
sorgente non fidata.
TaskKit esegue la verifica della firma in un Web Worker dedicato con
un timeout wall-clock di 2 secondi. Se il worker supera il budget,
viene terminato e la pagina mostra un errore invece di rimanere appesa.
jwt.io verifica sul thread principale, quindi una firma lenta è una
pagina lenta. La stessa architettura protegge il tester di regex di
TaskKit (contro il backtracking tipo (a+)+b) e il
formatter JSON (contro parse di diversi megabyte).
Dettagli dell'editor che contano nella vita di tutti i giorni
- Evidenziazione tricolore nell'input. Entrambi gli strumenti colorano i tre segmenti del token, ma jwt.io lo fa solo in un pannello « Decoded » in sola lettura. TaskKit colora i segmenti nel textarea stesso dove modifichi, il che rende più facile individuare un punto incollato male.
- Etichette dei claim sempre visibili. I nomi
leggibili di jwt.io (
iat → "Issued at") sono dietro un tab « Claims Breakdown ». TaskKit li mostra in linea, sotto il payload, perché dati e descrizioni siano visibili in un colpo d'occhio. - Trattamento onesto di
x5c. Quando l'headerx5cdi un token viene usato per verificare, il chip di risultato di TaskKit dice « verificato con il certificato x5c dell'header del token (catena non validata) », senza suggerire fiducia end-to-end. Validare la catena fino a un'autorità radice richiederebbe scaricare le radici CA e resta fuori dal perimetro di uno strumento puramente browser. - Toggle base64url per HMAC. Alcune chiavi HMAC sono
memorizzate come byte codificati in base64url (per esempio, una
chiave
octdi un JWKS con un campok). Un piccolo toggle accanto al chip dell'algoritmo cambia l'input del segreto tra stringa letterale e byte base64url, perché tu non debba decodificare a mano. - Input chiave EdDSA grezzo. Incolla un Ed25519 come 64 caratteri hex, 43 caratteri base64url, JWK o PEM. jwt.io si aspetta solo PEM o JWK.
Dove jwt.io è più forte
Un confronto utile non è un pitch unilaterale. Tre cose che jwt.io fa chiaramente meglio oggi:
- Directory di librerie. Un indice curato e cercabile di librerie JWT per linguaggio. Se cerchi un'implementazione per un servizio, la directory di jwt.io è l'indirizzo giusto.
- Introduzione estesa. Una pagina canonica « Cos'è un JWT » che spiega il concetto con abbastanza profondità da poterlo trasmettere da capo a fondo. Il testo esplicativo sotto il decodificatore di TaskKit è più corto e centrato sullo strumento.
- Link per ogni claim al RFC. Ogni claim registrato rimanda alla sezione del RFC che lo definisce. Una piccolezza, ma utile quando stai verificando la conformità con la spec.
Cosa TaskKit lascia fuori deliberatamente
Una garanzia di privacy è più facile da mantenere se non ci sono porte di servizio installate. Alcune funzionalità che altri strumenti offrono mancano qui di proposito.
- Auto-discovery OIDC. Alcuni strumenti ti lasciano
incollare un URL di issuer e scaricano silenziosamente
.well-known/openid-configurationper ottenere le chiavi. È una richiesta in uscita dal tuo browser verso una terza parte — e l'URL stesso può rivelare dettagli del deployment. TaskKit esige che incolli tu il JWKS. - Campo « JWKS via URL ». Stessa giustificazione. Un
curldi una riga nel tuo terminale batte un fetch in uscita dalla pagina che stai debuggando. - Analytics per impostazione predefinita. Il codice supporta un token Cloudflare Web Analytics opzionale (privacy-preserving), ma è disattivato salvo che l'operatore lo attivi esplicitamente. La versione ospitata su taskkit.net lo ha anch'essa disattivato.
- Account e cronologia lato server. Salvare e condividere passano per frammenti di URL quando supportato. Niente è salvato su un server perché non c'è server.
Prova gli strumenti JWT di TaskKit
Decodificatore JWT
Incolla un token, ispeziona i claim e verifica la firma contro una chiave, un JWKS o un certificato x5c embedded.
Encoder JWT
Firma token in locale con HS, RS, PS, ES o EdDSA. La chiave privata resta nel tab.
Metodologia
Testato il 2026-05-05 su Chrome con cache e cookie first-party cancellati. Le richieste di rete sono state contate dal caricamento della pagina alla prima pressione di un tasto. La matrice di funzionalità riflette il comportamento dei due strumenti a quella data ed è rivisitata quando uno di essi pubblica un cambiamento rilevante.
jwt.io è un marchio del rispettivo titolare. Questa pagina non è affiliata né sostenuta da jwt.io.