JWT Decoder
Decode and inspect JSON Web Tokens instantly with our free online JWT decoder. Paste any JWT to see its header, payload, and signature components decoded and displayed in readable format. Whether you are debugging authentication flows, verifying token claims, examining third-party tokens, understanding JWT structure, or troubleshooting authorization issues, this tool provides complete transparency into token contents with support for HS256, RS256, ES256, and other common signing algorithms. All decoding happens in your browser for security.
What Is
JWT Decoder is a security and development tool that parses and displays the contents of JSON Web Tokens (JWTs) — an open standard (RFC 7519) for transmitting information between parties as a compact, URL-safe JSON object. JWTs consist of three dot-separated components: the header (specifies the token type and signing algorithm), the payload (contains the claims or actual user data and metadata), and the signature (verifies the token was not altered in transit). Our decoder instantly breaks down any JWT into its three Base64Url-encoded parts, decodes each component to JSON, and displays them in a structured, syntax-highlighted view with human-readable timestamps converting Unix epoch times in exp (expiration), iat (issued at), and nbf (not before) claims. The tool validates the token structure (three parts separated by dots, valid Base64Url encoding, valid JSON in decoded parts) and highlights potential issues like expired tokens or unusual algorithms.
How to Use
- Paste the complete JWT string (including all three dot-separated sections) into the JWT input field, or use the file upload option to load a token from a file
- Click the Decode JWT button to instantly parse and display the token's header, payload signature components in separate panels
- Review the Header panel showing the algorithm and token type used to sign this JWT, including alg, typ, and kid fields
- Examine the Payload panel showing all claims (user data, expiration time, issuer, audience, scopes) with human-readable date formatting for timestamp claims
- Verify the Signature status panel to check whether the token has expired (based on exp claim) and the algorithm used to detect potential security issues
Examples
Input: JWT: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.signature
Process: Split by . → Base64-decode header → Base64-decode payload
Result: Header: {alg:HS256}, Payload: {sub:1234}
Input: JWT with exp claim
Process: Decode payload → Extract exp timestamp → Check expiry
Result: Token expires: 2026-12-31 (expires in 170 days)
Related Searches
People also search for: jwt decoder, decode jwt, jwt inspector, jwt token decode, json web token, jwt parser.
jwt decoderdecode jwtjwt inspectorjwt token decodejson web tokenjwt parserjwt debuggerjwt verify
Frequently Asked Questions
What is a JWT and how is it structured?
JWT (JSON Web Token) is an open standard (RFC 7519) for securely transmitting information between parties as a JSON object. It consists of three parts separated by dots: Header contains metadata about the token, specifically the signing algorithm (such as HS256, RS256, ES256) and the token type (always JWT), encoded as Base64Url JSON. Payload contains the claims (statements about an entity, typically the user, and additional data) such as sub (subject/user ID), exp (expiration timestamp), iat (issued at), aud (audience), iss (issuer), and any custom claims your application adds. Signature is computed by hashing the encoded header and payload with a secret key (for HMAC algorithms) or a private key (for RSA/ECDSA algorithms), ensuring the token cannot be modified without detection. The final token looks like: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U.
Is it safe to decode a JWT using an online tool?
Decoding is safe because JWT header and payload are NOT encrypted — they are merely Base64Url-encoded (like base64 but URL-safe), meaning anyone who possesses the token can read its contents. This is by design: JWTs are signed (not encrypted) by default. The signature only verifies integrity, not confidentiality. However, you should NEVER share tokens that contain sensitive data (passwords, PII, API keys) in any解码 tool. The security risk is not the decoding itself but exposing the token to third parties. Our tool processes everything client-side in your browser — the token is never sent to any server, maintaining privacy. If your application requires confidential tokens, consider using JWE (JSON Web Encryption) which encrypts the payload, or ensure JWTs do not carry sensitive information.
What JWT algorithms are supported and how do I interpret the header?
Common algorithms include: HS256 (HMAC SHA-256) uses a symmetric secret key for signing and verification — the same key signs and validates; HS384 and HS512 use larger hash outputs. RS256 (RSA SHA-256) uses an asymmetric key pair: a private key signs, a public key verifies — used by OAuth providers (Auth0, Okta); RS384 and RS512 are the same with larger hashes. ES256 (ECDSA P-256), ES384, ES512 use elliptic curve cryptography for shorter signatures. None means an unsigned token — reject these in production. The header also sometimes includes kid (key ID) to specify which signing key was used when multiple keys are available alg tokens with algorithm none have been exploited in the past.
How do I verify the signature of a decoded JWT?
Our decoder shows the decoded components and the token's structural validity but cannot fully verify the signature because verification requires the signing secret (for symmetric algorithms like HS256) or the public key (for asymmetric algorithms like RS256). To verify: for symmetric algorithms, enter the shared secret in our signature verification field and the tool will recompute the signature and compare it to the token's signature, indicating match or mismatch. For asymmetric algorithms, provide the public key (PEM format) and the tool performs cryptographic verification. Signature verification confirms two things: the token was signed by the expected issuer (who holds the private key/secret) and the token contents have not been altered since signing. For production token validation, always verify signatures in your authorization middleware.
What are common JWT claims and what do they mean?
Standard JWT claims (defined in RFC 7519) include: iss (issuer) identifies the principal that issued the JWT, typically the authentication server URL (like https://auth.example.com); sub (subject) identifies the principal that is the subject of the JWT, typically the user ID; aud (audience) identifies the recipients that the JWT is intended for, typically your application identifier; exp (expiration time) is the timestamp after which the JWT must not be accepted for processing, expressed as Unix epoch seconds; nbf (not before) is the timestamp before which the JWT must not be accepted; iat (issued at) identifies the time at which the JWT was issued, used to determine token age; jti (JWT ID) provides a unique identifier for the JWT, used to prevent token replay attacks. Expiration is the most critical claim: always check exp in your token validation middleware to reject expired tokens.