Create and sign JSON Web Tokens with HS256, HS384 or HS512, including expiry, issuer and audience claims. Signed in your browser, nothing uploaded.
First time here? Write your claims as a JSON payload Your input is processed locally and disappears when you close the tab.
Debugging an API that expects a JWT usually means needing a valid token with specific claims, right now, without standing up an auth server. This free jwt generator signs one in your browser.\n\nWrite your claims as JSON, choose HS256, HS384 or HS512, set an expiry, and optionally add issuer and audience. The issued-at timestamp is added automatically. The payload is validated as real JSON before signing, so a trailing comma produces a clear error rather than a confusing failure downstream.\n\nKey length is enforced rather than ignored. HS256 requires at least 32 bytes, HS384 48 and HS512 64 — shorter keys undermine the signature to the point where the algorithm choice stops mattering. A generator button produces a suitable random secret if you do not have one.\n\nTwo things worth stating plainly. This is for testing, not production issuance: real tokens should be minted by your backend with a secret that never leaves it. And a JWT payload is base64, not encryption — anyone holding the token can read every claim inside it. The signature stops modification, not reading, so nothing sensitive belongs in there. Check your output with the JWT Decoder, which verifies signatures as well as decoding.
Write your claims as a JSON payload
Pick an algorithm and expiry
Enter or generate a signing secret
Sign, then verify the result in the JWT Decoder
iat is added automatically. exp, iss and aud come from the fields below.
0 of 32 bytes minimum for HS256