CalcMint

Decoder e generatore di JWT

Incolla un JSON Web Token per leggere header e claim, vedere quando scade e verificarne la firma. Il tuo token non lascia questa pagina.

Decoder e generatore di JWT

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkphbmUgRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTc2NzIyNTYwMCwiZXhwIjoxODkzNDU2MDAwfQ.vgHtS5dyaSUxDoPpQPoyaFVrg5I8B0EV9R0_Ah59pxU

Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

{
  "sub": "1234567890",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1767225600,
  "exp": 1893456000
}
Algoritmo (alg)
HS256
Tipo (typ)
JWT
Soggetto (sub)
1234567890
Emesso il (iat)
giovedì 1 gennaio 2026 alle ore 09:00:00 GMT+9
Scade il (exp)
martedì 1 gennaio 2030 alle ore 09:00:00 GMT+9
Aggiungi questo calcolatore al tuo sito

Copia il codice e incollalo nell'HTML della tua pagina. È gratis; mantieni il link di credito, per favore.

Come è fatto un JWT

Un JSON Web Token (RFC 7519) è formato da tre stringhe Base64URL unite da punti: header.payload.firma. L'header indica l'algoritmo usato per la firma, il payload contiene i claim (ID utente, ruoli, scadenza) e la firma viene calcolata sulle prime due parti.

Con HS256 la firma è un HMAC calcolato con un segreto condiviso, quindi lo stesso segreto firma e verifica. RS256, PS256 ed ES256 firmano con una chiave privata e verificano con una chiave pubblica: così molti servizi possono controllare i token senza poterne creare.

Verificare un token in sicurezza

  • Verifica sempre la firma lato server e rifiuta alg "none".
  • Fissa l'algoritmo atteso: non lasciare che lo scelga l'header del token.
  • Controlla exp, nbf, iss e aud, con un margine di uno o due minuti per le differenze di orologio.
  • Usa token di breve durata e trattali come password: questo decoder funziona offline, ma molti altri inviano il token a un server.

Claim JWT registrati (RFC 7519)

ClaimNomeSignificato
issEmittenteChi ha creato e firmato il token
subSoggettoA chi si riferisce il token, di solito un ID utente
audDestinatarioA chi è destinato il token
expScadenzaSecondi dal 1970 dopo i quali va rifiutato
nbfNon prima diSecondi dal 1970 prima dei quali va rifiutato
iatEmesso ilQuando è stato creato
jtiID del JWTID univoco, per impedire che il token venga riutilizzato

Domande frequenti

Chiunque può leggere un JWT?

Sì. Header e payload sono solo codificati in Base64URL, non cifrati, quindi chiunque abbia il token può leggerli. Non mettere mai password o segreti nel payload di un JWT.

Decodificare un JWT ne verifica la validità?

No. La decodifica legge solo il contenuto. Solo la verifica della firma con il segreto o la chiave pubblica giusti dimostra che il token non è stato falsificato né modificato, e il server deve controllare anche exp, nbf e aud.

Perché il mio token risulta scaduto se è appena stato emesso?

exp, iat e nbf sono in secondi dal 1970, non in millisecondi. Un token creato con Date.now() di JavaScript (millisecondi) senza dividere per 1000 sembra scadere tra decine di migliaia di anni, mentre le differenze di orologio tra server possono far sembrare un token appena emesso già scaduto o non ancora valido.

Quello che incollo viene inviato a un server?

No. Questo strumento funziona interamente nel tuo browser, con JavaScript e la Web Crypto API integrata. Niente di ciò che scrivi, incolli o apri viene caricato o salvato.

Calcolatori correlati