Signer e Verifier di JWT
Firma e verifica JSON Web Token client-side con HS256/HS384/HS512, RS256 e ES256. Genera chiavi RSA ed ECDSA nel browser.
Cos'è un JWT?
Un JSON Web Token (JWT) è un modo compatto e URL-safe di trasportare claim tra due parti. È composto da tre parti codificate in Base64URL e unite da punti: un header che indica l'algoritmo, un payload con claim JSON arbitrarie e una firma calcolata su header.payload con una chiave. Il ricevente ricalcola la firma e rifiuta il token se non corrisponde. I JWT sono popolari per l'autenticazione stateless perché i server non devono ricordarsi le sessioni — ogni richiesta porta la propria prova. Il rovescio della medaglia è che non puoi revocare un token una volta emesso senza una lista di revoca extra, e qualsiasi segreto o chiave rubati compromette tutti i token firmati con essi. Questo strumento gira interamente sul tuo dispositivo — i tuoi segreti, le chiavi di firma e i token non lasciano mai la pagina, non viaggiano mai sui nostri server e non vengono memorizzati, indicizzati, registrati o condivisi. Questa garanzia di privacy conta perché un singolo leak di un segreto di firma JWT può compromettere ogni account utente per cui emette token.
Come usare il signer/verifier
Scegli l'algoritmo che corrisponde al tuo ambiente, incolla header e payload (o usa i default come template), poi clicca su Firma. Per RS256 ed ES256 puoi generare una coppia di chiavi nuova nella pagina; per HS256 fornisci un segreto condiviso. Per verificare, passa alla modalità verify, incolla il token e il segreto o chiave pubblica corrispondente, poi clicca su Verifica. Il payload decodificato appare nella casella del verdetto in caso di successo.
Consigli pratici e trabocchetti
Imposta sempre exp (scadenza) sui token di produzione. Non accettare mai l'algoritmo dichiarato nell'header senza una lista di permessi — il classico attacco alg=none sfrutta server che si fidano dell'header. Ruota periodicamente le chiavi di firma, conserva le chiavi private in un HSM o in un secrets manager, e tratta i segreti HMAC come password. Per browser e app mobile, preferisci JWT a vita breve abbinati a refresh token salvati in cookie HttpOnly.
Algoritmi supportati
| Alg | Famiglia | Caso d'uso |
|---|---|---|
HS256 | HMAC + SHA-256 | Servizi interni che condividono un singolo segreto. Veloce e semplice. |
HS384 | HMAC + SHA-384 | Servizi interni che condividono un singolo segreto. Veloce e semplice. |
HS512 | HMAC + SHA-512 | Servizi interni che condividono un singolo segreto. Veloce e semplice. |
RS256 | RSA + SHA-256 | API pubbliche che distribuiscono la chiave pubblica per la verifica. |
ES256 | ECDSA P-256 + SHA-256 | Come RS256 ma con firme più corte e curve ellittiche moderne. |
Domande frequenti
Qualcosa viene inviato al vostro server?
Qual è la differenza tra HS256 e RS256?
Posso usarlo per chiavi di produzione?
Perché il mio token non si verifica?
exp) o non ancora valido (nbf), payload manomesso, o un copia-incolla che ha introdotto spazi.