How to use the JWT Decoder
- Paste the token. A leading "Bearer " is removed automatically.
- Read the claims and the expiry status in the summary.
- For HS256 tokens, enter the secret to check the signature.
- Copy or save the decoded result if you need it.
What the result means
- NOT VERIFIED
- The content was decoded, but the signature was not checked. Treat the claims as unconfirmed.
- VERIFIED
- The HS256 signature matches the secret you entered, so the token was created with that secret and not changed.
- INVALID
- The signature does not match: the token was modified, or the secret is wrong.
- NONE
- The token uses alg "none" and has no signature. Servers should reject such tokens.
- Times
- exp, nbf and iat are seconds since 1970 (UTC). The expiry status compares exp with your device’s clock.
Examples
These outputs were produced by the same code that runs in the tool above.
Decode a token without verifying
The payload and claims are readable, but the signature is reported as not verified.
Token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjdXN0XzEwMjQiLCJuYW1lIjoiQW1pbmEgUmFobWFuIiwicm9sZSI6ImVkaXRvciIsImlhdCI6MTc5Mzc4NjQwMCwiZXhwIjoxNzkzNzkwMDAwfQ.sK5b7Zso2MGSgHJ4kI3ysKSscx_XO5pGC74OETi183c
Decoded
HEADER
{
"alg": "HS256",
"typ": "JWT"
}
PAYLOAD
{
"sub": "cust_1024",
"name": "Amina Rahman",
"role": "editor",
"iat": 1793786400,
"exp": 1793790000
}
CLAIMS
Subject cust_1024
Name Amina Rahman
role editor
Issued at 2026-11-04T10:00:00Z (30 minutes ago)
Expires 2026-11-04T11:00:00Z (in 30 minutes)
SIGNATURE
Algorithm: HS256
NOT VERIFIED. The signature was not checked. Decoding shows the content, but anyone can create a token with any content. Enter the HS256 secret to verify it here.
- The secret, if entered, stays on your device and is not saved.
Verify an HS256 token with its secret
The same token checked with the secret zvaad-demo-secret.
Token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJjdXN0XzEwMjQiLCJuYW1lIjoiQW1pbmEgUmFobWFuIiwicm9sZSI6ImVkaXRvciIsImlhdCI6MTc5Mzc4NjQwMCwiZXhwIjoxNzkzNzkwMDAwfQ.sK5b7Zso2MGSgHJ4kI3ysKSscx_XO5pGC74OETi183c
Decoded
HEADER
{
"alg": "HS256",
"typ": "JWT"
}
PAYLOAD
{
"sub": "cust_1024",
"name": "Amina Rahman",
"role": "editor",
"iat": 1793786400,
"exp": 1793790000
}
CLAIMS
Subject cust_1024
Name Amina Rahman
role editor
Issued at 2026-11-04T10:00:00Z (30 minutes ago)
Expires 2026-11-04T11:00:00Z (in 30 minutes)
SIGNATURE
Algorithm: HS256
VERIFIED: the HS256 signature matches the secret you entered.
- The secret, if entered, stays on your device and is not saved.
Frequently asked questions
Is it safe to paste a real token?
The token is decoded on your device and is not sent anywhere. Remember that a valid token is a credential: anyone who has it can use it until it expires.
Why can I read the token without a key?
JWT payloads are only Base64URL-encoded, not encrypted. Do not put secrets in them.
Can it verify RS256 or ES256 tokens?
Not in this version. Those need the issuer’s public key and should be verified by your server or authentication library.
Limitations and edge cases
- Only HS256 signatures can be verified here.
- Encrypted tokens (JWE) cannot be decoded without the key.
- Expiry is calculated with this device’s clock.
Read the privacy policy for how the site handles data.