Vai al contenuto principale

Encoder JWT

Genera un JSON Web Token firmato con HMAC per i tuoi test: inserisci header e payload in JSON, scegli HS256, HS384 o HS512 e il tuo segreto; alg e typ vengono compilati automaticamente.

  • Appunti

Integra questo widget

Personalizza il risultato, controlla l’anteprima e copia il codice.

Anteprima

Tipo di codice di integrazione

Codice da copiare

Responsive e ridimensionato automaticamente da Bethemesh.

Algoritmo

Per test e sviluppo: non usare un segreto di produzione su un dispositivo condiviso o non affidabile.

Questo strumento ti è stato utile?

Come funziona questo strumento?

L’encoder JWT crea un token firmato con HMAC a partire da un header, un payload JSON e un segreto condiviso. Serve a sviluppatori e tester che hanno bisogno di un token su misura per chiamare un’API locale, scrivere un test automatico o riprodurre un caso limite (token scaduto, ruolo mancante). È pensato per sviluppo e test, non per emettere token di produzione.

Lo strumento controlla che header e payload siano oggetti JSON validi, poi imposta nell’header alg sull’algoritmo scelto e typ su JWT. Ogni oggetto viene serializzato e codificato in Base64URL (RFC 4648, senza riempimento =), e i due segmenti vengono uniti da un punto. Ad esempio, l’header {"alg":"HS256","typ":"JWT"} diventa eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

La firma è un HMAC calcolato sulla stringa «header.payload» con SHA-256, SHA-384 o SHA-512 a seconda dell’algoritmo (RFC 7518, sezione 3.2), tramite la Web Crypto API. Il risultato, codificato in Base64URL, costituisce il terzo segmento del JWT (RFC 7519). La RFC 7518 impone una chiave lunga almeno quanto l’output dell’hash: 256 bit (32 byte) per HS256, 384 bit per HS384 e 512 bit per HS512. Le date exp, iat e nbf del payload vanno espresse in secondi Unix, ad esempio "exp": 1767225600 per il 1° gennaio 2026 alle 00:00 UTC.

Come usare questo strumento

  1. Scrivi header e payload

    Modifica le due aree JSON precompilate o importa un file .json. Aggiungi i tuoi claim: sub, iss, aud, exp, ruoli o campi personalizzati.

  2. Scegli algoritmo e segreto

    Seleziona HS256, HS384 o HS512 e inserisci il segreto condiviso. I campi alg e typ dell’header vengono aggiornati automaticamente.

  3. Genera e copia il JWT

    Fai clic su Genera: il token firmato compare e puoi copiarlo. Se il JSON non è valido o il segreto è vuoto viene mostrato un errore.

Firma JWT HMAC

Firma JWT HMAC

JWT = Base64URL(header) + '.' + Base64URL(payload) + '.' + Base64URL(HMAC(segreto, dati da firmare))

Casi d’uso

Testare un’API protetta in locale

Crea un token firmato con il segreto del tuo ambiente di sviluppo per chiamare una rotta protetta con curl o Postman, senza passare da tutto il flusso di login.

Riprodurre un token scaduto o senza ruolo

Imposta exp nel passato o togli un claim roles per verificare che il tuo middleware restituisca davvero un errore 401 o 403 in questi casi limite.

Preparare le fixture dei test

Genera token stabili per i test di integrazione, poi controllali con il verificatore JWT per assicurarti che segreto e claim corrispondano a quanto si aspetta il server.

Esempi

JWT firmato con HS256

Input

Algoritmo: HS256; Header JSON: {"alg":"HS256","typ":"JWT"}; Payload JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Segreto: chiave-di-prova

Risultato

JWT firmato: tre segmenti Base64URL separati da punti; la firma usa HMAC-SHA256.

Consigli e buone pratiche

  • Usa un segreto di almeno 32 byte casuali per HS256: una parola breve come «secret» rende il token violabile con un attacco di forza bruta offline.
  • Scrivi exp e iat in secondi e non in millisecondi: Date.now() in JavaScript restituisce millisecondi e produce una data intorno all’anno 58.000.
  • Non inserire dati riservati nel payload: è soltanto codificato in Base64URL e chiunque abbia il token può leggerlo.

Fonti e riferimenti

Domande frequenti

Come si crea un JWT?

Un JWT si costruisce codificando in Base64URL un header JSON e un payload JSON, poi firmando la stringa «header.payload» con l’algoritmo scelto. Qui basta inserire i due oggetti e un segreto e fare clic su Genera. In produzione se ne occupa il server di autenticazione o una libreria come jose o jsonwebtoken.

Quanto deve essere lungo un segreto HS256?

La RFC 7518 richiede una chiave di almeno 256 bit, cioè 32 byte, per HS256; 48 byte per HS384 e 64 byte per HS512. Un segreto casuale di queste dimensioni, ad esempio creato con un generatore di token sicuri, impedisce gli attacchi a dizionario sulla firma.

Perché solo HS256, HS384 e HS512?

Questi algoritmi HMAC richiedono solo un segreto condiviso, sufficiente per creare token di test. RS256 o ES256 richiederebbero una chiave privata, che non dovrebbe essere gestita in uno strumento web. Se più parti devono verificare i tuoi token senza poterli emettere, usa un algoritmo asimmetrico lato server.

Come aggiungo una data di scadenza a un JWT?

Aggiungi al payload il claim exp con un timestamp Unix in secondi, ad esempio "exp": 1767225600. Un convertitore di timestamp ti aiuta a calcolare il valore partendo da una data. Valuta anche iat per indicare la data di emissione.

Posso usare questi token in produzione?

No, lo strumento è pensato per sviluppo e test. In produzione i token devono essere emessi da un server che tiene il segreto lontano dagli utenti, impone durate brevi e gestisce la rotazione delle chiavi.

Il mio segreto viene inviato da qualche parte?

No. La codifica e la firma HMAC vengono calcolate nel tuo browser con la Web Crypto API, senza richieste di rete. Evita comunque di inserire un segreto di produzione, perché chiunque lo conosca può firmare token che la tua API accetterà.

Flusso di lavoro consigliato

Scopri gli strumenti che si integrano naturalmente prima, dopo o insieme a questo.

Funziona bene con

Decodifica un JWT per leggere header, payload, claim e date di scadenza.

Sicurezza e privacyIn evidenzaUsa questo strumento

Passaggio successivo

Verifica la firma di un JWT con un segreto HMAC o una chiave pubblica JWK, JWKS o PEM, poi controlla exp, nbf, iss e aud.

Sicurezza e privacyUsa questo strumento