JWT Decoder & Verifier
Decode a JSON Web Token (JWT) into Header & Payload and (optionally) verify its signature. Runs locally in your browser.
Input token
Decoded
Verify signature
Algorithm will be detected from header (alg). Supported: HS256, RS256.
What is a JWT?
A JSON Web Token (JWT, RFC 7519) is a compact token used for authentication and passing claims between services.
It has three Base64url-encoded parts separated by dots: header.payload.signature.
- Header โ token type and signing algorithm, e.g.
{"alg":"HS256","typ":"JWT"} - Payload โ the claims: who the user is, when the token expires, etc.
- Signature โ proves the token was issued by someone holding the key and has not been modified.
Standard claims
| Claim | Name | Meaning |
|---|---|---|
iss | Issuer | Who created the token |
sub | Subject | Whom the token is about (usually a user ID) |
aud | Audience | Who the token is intended for |
exp | Expiration | Unix time after which the token is invalid |
nbf | Not before | Unix time before which the token is invalid |
iat | Issued at | Unix time when the token was created |
jti | JWT ID | Unique identifier, useful for revocation |
Times are Unix timestamps in seconds โ convert them with the Timestamp Converter.
Signature algorithms
- HS256 โ HMAC with SHAโ256 and a shared secret. The same secret signs and verifies.
- RS256 โ RSA signature with SHAโ256. Signed with a private key, verified with the public key (PEM,
BEGIN PUBLIC KEY).
JWT security checklist
- The payload is only encoded, not encrypted โ never put passwords or secrets in it.
- Always verify the signature on the server and pin the expected algorithm; reject
alg: none. - Keep
expshort and validateissandaud. - Use long random secrets for HS256 โ at least 256 bits (generate one with the Password Generator).
Frequently asked questions
Is a JWT payload encrypted?
No. A standard signed JWT (JWS) is only Base64url-encoded; anyone can read the payload. Encrypted tokens use the separate JWE format.
Can this tool verify JWT signatures?
Yes. It verifies HS256 tokens with a shared secret and RS256 tokens with an RSA public key in PEM format, using the browserโs Web Crypto API.
Is my token sent anywhere?
No. Decoding and verification happen locally in your browser. The secret you enter is not saved.
Why does it say my token is expired?
The exp claim is earlier than your deviceโs current time. Check the token lifetime and your system clock.
What is the difference between HS256 and RS256?
HS256 uses one shared secret for signing and verifying. RS256 uses a private key to sign and a public key to verify, so verifiers never hold the signing key.
Can I edit a JWT and keep it valid?
No. Changing the header or payload invalidates the signature unless you re-sign it with the correct key.