Vai al contenuto
ToolMug

Decodificatore JWT

Incolla un JSON Web Token per vederne header e payload, controllare se è scaduto e verificare la firma con un segreto o una chiave pubblica. Tutto avviene in locale, quindi i token di produzione non vengono mai inviati a un server.

Funziona nel tuo browser: nulla di ciò che inserisci viene caricato

La decodifica non verifica la firma. Chiunque può creare un token con qualsiasi claim.

Come si usa

  1. Incolla il token, con o senza il prefisso «Bearer ». Le tre parti sono evidenziate con colori diversi.
  2. Leggi header e payload decodificati. I claim iat, nbf ed exp sono mostrati come date con il tempo relativo.
  3. Per verificare la firma, inserisci il segreto condiviso per HS256/384/512 oppure incolla la chiave pubblica (PEM o JWK) per i token RS, PS, ES ed EdDSA.
  4. Copia il JSON decodificato se ti serve altrove.

Opzioni spiegate

Header
Metadati del token, di solito alg (l'algoritmo di firma) e typ. Il campo kid indica quale chiave lo ha firmato.
Payload
I claim. Quelli registrati includono sub (soggetto), iss (emittente), aud (destinatario), iat (emesso il), nbf (non prima di) ed exp (scadenza), tutti i tempi in secondi Unix.
Firma
Dimostra che header e payload non sono stati modificati. Per controllarla serve il segreto (HMAC) o la chiave pubblica dell'emittente (RSA, ECDSA, EdDSA).
Il segreto è codificato in Base64
Alcuni servizi conservano i segreti HMAC codificati in Base64. Spunta questa opzione se il segreto che hai è in forma codificata.

Claim più comuni

Claim Significato Esempio
sub A chi si riferisce il token (ID utente) "1234567890"
iss Chi lo ha emesso "https://accounts.example.com"
aud A chi è destinato "my-api"
exp Scadenza, secondi Unix 1790427600
iat Emesso il, secondi Unix 1790424000
nbf Non valido prima di, secondi Unix 1790424000
jti ID univoco del token, per impedire il riutilizzo "a1b2c3"

Esempio

Il token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c si decodifica nell’header {"alg":"HS256","typ":"JWT"} e in un payload con sub, name e iat (18 gennaio 2018). Con il segreto your-256-bit-secret la firma risulta verificata.

Domande frequenti

È sicuro incollare qui un JWT di produzione?

Il token viene decodificato da JavaScript nel tuo browser e non viene caricato né registrato. Tratta comunque i token di accesso come password, perché chiunque abbia un token valido può usarlo fino alla scadenza.

Decodificare un JWT dimostra che è autentico?

No. Header e payload sono solo codificati in Base64URL, quindi chiunque può leggerli o falsificarli. Solo una verifica della firma riuscita con la chiave giusta dimostra che il token è stato emesso dal soggetto previsto.

Perché la verifica fallisce con il segreto corretto?

Controlla se il segreto è codificato in Base64, se c'è uno spazio o un a capo finale e se l'algoritmo nell'header corrisponde a quello usato dall'emittente. Qualsiasi modifica al token, anche di un solo carattere, invalida la firma.

Che cosa significa «alg none»?

Il token dichiara di non essere firmato. I server devono rifiutare questi token a meno che non li prevedano esplicitamente; accettarli ha causato reali aggiramenti dell'autenticazione.

Come ottengo la chiave pubblica per i token RS256?

I provider di identità pubblicano le loro chiavi come JWKS, di solito all'indirizzo /.well-known/jwks.json. Copia la chiave il cui kid corrisponde all'header del token e incollala qui come JWK.

Privacy

Questo strumento funziona interamente nel tuo browser. File e testi vengono elaborati sul tuo dispositivo e non vengono mai caricati sui nostri server.

Strumenti correlati