JWT Decoder

Decode a JSON Web Token to see its header, payload and claims. Decoding only — the signature is not verified.

Helpful?
JWT Token
Enter a JWT token to decode
Header
ALGORITHM & TOKEN TYPE
-
Payload
DATA
-
Signature
VERIFY SIGNATURE
-
Signature verification requires the secret key (not possible in browser)

A JSON Web Token is three Base64url-encoded parts separated by dots: a header (the algorithm, e.g. HS256), a payload of claims, and a signature. Because the first two parts are only encoded, not encrypted, anyone can read them — paste a token above and this JWT decoder shows the header and payload as formatted JSON, along with the standard claims explained.

What you will see

  • Header — alg (signing algorithm) and typ, sometimes a key id kid.
  • Payload — registered claims such as iss (issuer), sub (subject), aud (audience), exp (expiry), nbf (not before), iat (issued at) and jti (token id), plus any custom claims your application adds.
  • Signature — the raw Base64url string. This tool does not have your secret or public key, so it cannot verify it.

Verifying a signature

For an HS256 token, the signature is HMAC-SHA256 over base64url(header) + "." + base64url(payload) using the shared secret. You can reproduce it with the HMAC-SHA256 generator (Base64URL output) and compare. Tokens signed with RS256 or ES256 need the issuer's public key.

Treat tokens as secrets even though they decode freely: a valid token grants whatever access it encodes. Read JWT tokens explained for structure, verification pitfalls and expiry handling.

Frequently Asked Questions

Yes. The header and payload are Base64url-encoded JSON, not encrypted, so anyone with the token can read them. The secret is only needed to create or verify the signature.

No. It decodes and displays the token. To verify an HS256 token, recompute HMAC-SHA256 over the first two parts with the shared secret and compare it to the signature.

The token is decoded in your browser and never sent to our server. Even so, treat production tokens as credentials and avoid pasting them into any third-party site.

exp is the expiry time as a Unix timestamp (seconds since 1970-01-01 UTC). A token whose exp is in the past must be rejected by the server.

Mostly for authentication and authorisation between services and single-page apps: a server issues a signed token, and other services trust its claims without a database lookup as long as the signature and expiry check out.
Share this tool