Firma JWT HMAC
JWT = Base64URL(header) + '.' + Base64URL(payload) + '.' + Base64URL(HMAC(segreto, dati da firmare))
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.
Per test e sviluppo: non usare un segreto di produzione su un dispositivo condiviso o non affidabile.
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.
Modifica le due aree JSON precompilate o importa un file .json. Aggiungi i tuoi claim: sub, iss, aud, exp, ruoli o campi personalizzati.
Seleziona HS256, HS384 o HS512 e inserisci il segreto condiviso. I campi alg e typ dell’header vengono aggiornati automaticamente.
Fai clic su Genera: il token firmato compare e puoi copiarlo. Se il JSON non è valido o il segreto è vuoto viene mostrato un errore.
JWT = Base64URL(header) + '.' + Base64URL(payload) + '.' + Base64URL(HMAC(segreto, dati da firmare))
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.
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.
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.
Input
Algoritmo: HS256; Header JSON: {"alg":"HS256","typ":"JWT"}; Payload JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Segreto: chiave-di-provaRisultato
JWT firmato: tre segmenti Base64URL separati da punti; la firma usa HMAC-SHA256.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.
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.
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.
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.
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.
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.
Decodifica un JWT per leggere header, payload, claim e date di scadenza.
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.
Scopri cosa contiene un JWT, cosa prova davvero la sua firma e perché decodificare un token non equivale a verificarlo.
Comprendi come si collegano OAuth 2.0, PKCE, JWT, JWK e JWKS: autorizzazione, token, chiavi pubbliche e verifica.
Impara a costruire una CSP progressiva, comprenderne le direttive ed evitare policy troppo permissive o che rompono il sito.
Comprendi HSTS, Referrer-Policy, Permissions-Policy, protezioni dal framing e isolamento cross-origin prima di distribuirli.