Home Developer Tools JWT Decoder
🪙
Dev

JWT Decoder

Decode and inspect any JSON Web Token (JWT) — view the header, payload and signature in a readable format. No server needed. Enter your secret to verify the signature locally.

🔒 Browser-based📋 Header + Payload + Sig⏰ Expiry detection✅ Signature verify
Switch Tool:
🔒 100% Private — All processing runs entirely in your browser. Nothing is sent to any server.

📖How to Use the JWT Decoder

  1. 1
    Paste your JWT token

    Paste your full JWT string (the three base64url-encoded parts separated by dots) into the input box. The token is decoded client-side instantly — it is never sent to any server.

  2. 2
    Inspect the decoded parts

    The decoder splits the token into its three parts: the Header (algorithm and token type), the Payload (claims including user data, expiry, and issuer), and the Signature. All values are shown in formatted JSON.

  3. 3
    Verify and check expiry

    The tool automatically checks whether the token has expired based on the exp claim. Enter your secret key (HMAC) or public key (RSA/ECDSA) to verify the signature locally without any server-side call.

💡Quick Reference

ClaimMeaning
issIssuer
subSubject / User ID
expExpiry (Unix ts)
iatIssued At
audAudience

Frequently Asked Questions

What is a JWT?

JWT (JSON Web Token) is an open standard (RFC 7519) for securely transmitting information between parties as a JSON object. JWTs consist of three Base64URL-encoded parts separated by dots: the Header (algorithm used), the Payload (claims — the actual data), and the Signature (proof of authenticity). JWTs are used for authentication, API authorisation, and information exchange.

Is it safe to paste my JWT token here?

This tool decodes JWTs entirely in your browser — no data is ever sent to any server. However, treat your JWT tokens like passwords: avoid pasting live production tokens into any online tool. For development and debugging, this tool is safe. For extra security, you can redact or replace the signature portion before pasting since the header and payload are not secret.

What do the three parts of a JWT contain?

The Header contains the token type (JWT) and the signing algorithm (e.g. HS256, RS256). The Payload contains claims — standard claims include iss (issuer), sub (subject/user ID), exp (expiration time), iat (issued at), and nbf (not before), plus any custom claims your application adds. The Signature is a cryptographic hash of the header and payload, signed with a secret (HMAC) or private key (RSA/ECDSA).

What is the difference between HS256 and RS256?

HS256 (HMAC SHA-256) uses a shared secret key for both signing and verification — the same key is used by both the issuer and the verifier. RS256 (RSA SHA-256) uses asymmetric key pairs: the issuer signs with a private key, and verifiers check with the corresponding public key. RS256 allows public verification without exposing the signing key, making it better for multi-party systems. ES256 uses elliptic curve cryptography for smaller signatures.

What does token expiry mean?

The exp (expiration) claim in a JWT contains a Unix timestamp after which the token is no longer valid. Servers should reject any token where the current time exceeds exp. This tool calculates the current time against exp and displays whether the token is still valid, expired, or how much time remains. Token lifetimes vary from minutes (access tokens) to days or weeks (refresh tokens).

Can a JWT be tampered with?

The payload of a JWT is Base64URL-encoded but not encrypted — anyone can read it. However, the signature makes tampering detectable: if you modify any part of the header or payload, the signature will no longer match and the server will reject the token. JWT does NOT prevent someone from reading the payload; it only prevents undetected modification. Use JWE (JSON Web Encryption) if you need to encrypt the payload.

What are common JWT security vulnerabilities?

Key vulnerabilities include: the "alg: none" attack (accepting tokens with no signature — always validate the algorithm), HMAC/RSA confusion (using a public RSA key as an HMAC secret), weak secrets (short HMAC secrets that can be brute-forced), missing expiry validation (never checking the exp claim), storing sensitive data in the payload (it's readable by anyone), and JWT injection in headers. Always validate algorithm, expiry, issuer, and audience.