JWT Signer & Verifier — HS256 / HS384 / HS512
Sign and verify JSON Web Tokens with a shared secret. HMAC HS256/384/512 — your secret never leaves the browser.
About JSON Web Tokens
A JWT is a small, signed token that carries a set of claims — typically used to prove a user's identity after they sign in. It is made of three dot-separated parts: a header that names the algorithm, a payload that holds the claims, and a signature that ties the two to a secret. If the header or payload is changed, the signature no longer matches and verification fails.
This tool works with the HMAC family — HS256, HS384, and HS512 — where a single shared secret both signs and verifies. That makes it ideal for services under your own control that already share a secret. Use Sign to turn a JSON payload into a token, and Verify to check a token against a secret and see its decoded header and payload, including whether it has expired.
Because the whole process uses your browser's built-in cryptography, your secret and your tokens never leave your device — nothing is uploaded and nothing is stored. That privacy is the point: you can inspect and issue tokens without trusting a remote service with your keys.
How it works
Three steps. No sign-up, no upload, no wait.
Pick a mode
Sign a new token from a JSON payload, or verify and decode a token you already have.
Add your secret
Enter the shared HMAC secret. It stays on your device — nothing is ever uploaded.
Sign or verify
Get the signed token to copy, or a clear valid / failed result with the decoded header and payload.
Private by design.Everything happens right here in your browser. Your files are never uploaded — we never see them.
Frequently Asked Questions
What is a JWT? ▼
What goes in the header, payload, and signature? ▼
exp), or a not-before time (nbf). The signature is computed from the header, the payload, and the secret, so any change to the first two invalidates it.What is the difference between HS256, HS384, and HS512? ▼
Does my secret or token leave my browser? ▼
The token says invalid — what does that mean? ▼
exp) or not yet valid (before its nbf), while still showing you the decoded header and payload.