ToolSite

JWT Decoder

Decode and inspect JWT tokens — header, payload, and claims — and verify signatures (HS256/384/512, RS256/384/512, ES256/384/512). All processing happens locally.

All processing happens locally in your browser. No files are uploaded.

Share on X

Leave the key empty to decode without verifying the signature.

About

A JWT (JSON Web Token, pronounced "jot") is a compact, URL-safe way to transmit claims between parties. It is the most common stateless authentication mechanism on the web. Every OAuth 2.0 flow, every OpenID Connect login, and most single-page applications use JWTs to identify users without server-side sessions.

JWT structure: header.payload.signature

A JWT looks like three Base64url-encoded strings separated by dots:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U
  • Header: Metadata — signing algorithm (HS256, RS256, ES256) and token type (JWT).
  • Payload: The claims — user ID (sub), expiration (exp), issuer (iss), and any custom data the server chose to include.
  • Signature: A cryptographic hash of the header and payload, used to verify the token has not been tampered with.

Standard JWT claims

ClaimNameDescription
subSubjectThe principal this token is about (usually a user ID)
issIssuerWho created and signed this token
audAudienceWho this token is intended for
expExpirationUnix timestamp after which the token is invalid
nbfNot BeforeUnix timestamp before which the token is invalid
iatIssued AtUnix timestamp when the token was created
jtiJWT IDUnique identifier to prevent token replay

Decoding vs. verifying

Anyone can decode a JWT. The header and payload are Base64url-encoded, not encrypted. Paste a token above to see its contents immediately. Never put secrets (passwords, API keys, session tokens) in a JWT payload — assume anyone who captures the token can read it.

Verification proves authenticity. To verify that a JWT was genuinely issued by the claimed authority and has not been modified, provide the secret key (for HMAC algorithms) or the public key (for RSA/ECDSA). The tool uses WebCrypto in your browser to verify the signature — no token data leaves your machine.

Common JWT algorithms

AlgorithmTypeKeyUse case
HS256HMAC-SHA256Shared secretSingle-service tokens, internal APIs
RS256RSA-SHA256Public/private key pairMulti-service, third-party verification
ES256ECDSA P-256Public/private key pairSmaller signatures, mobile/performance

HS256 uses a shared secret — anyone who knows the secret can both create and verify tokens. RS256 and ES256 use asymmetric keys: the issuer signs with a private key, and anyone with the public key can verify. This is essential for OAuth 2.0, where the authorization server signs tokens and resource servers verify them without sharing secrets.

FAQ

What information can I see?
You can inspect the JWT header (algorithm, type), payload claims (issuer, subject, audience, expiration, issued-at, etc.), and optionally verify the signature using a secret or public key.
How does signature verification work?
Provide the secret (for HS256/384/512) or PEM-encoded public key (for RS*/ES*) and the signature is verified using WebCrypto in your browser. Verification requires a secure context (https or localhost).
Is my token uploaded anywhere?
No. All decoding and verification happens locally in your browser.

Learn more

Related tools