API & Auth

JWT Decoder & Security Analyzer

Decode a JSON Web Token and audit it in one step: algorithm safety, expiry, and risky claims — all checked locally.

Your token is decoded locally in your browser. It is never uploaded to our servers — safe for production tokens.

1
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOi...

How to use

  1. Paste a JWT (the raw eyJ... string, with or without a leading 'Bearer ').
  2. Click Decode & Analyze.
  3. In the Decode tab, read the header, payload, and every claim with timestamps converted to local time.
  4. Switch to the Security Analysis tab for the rule-based audit: critical issues first, then warnings and suggestions.
  5. Copy any section with the copy buttons for your report or bug ticket.

How a JWT works — and why you should audit yours

A JSON Web Token is three Base64url-encoded parts joined by dots: header.payload.signature. The header declares the signing algorithm, the payload carries the claims (who the user is, when the token expires, what they may do), and the signature lets a server verify that nobody tampered with the first two parts.

Decoding a JWT needs no key — the header and payload are just Base64. That is also the trap: anyone who intercepts the token can read every claim, so payloads must never contain secrets. And because the server is the only party that verifies signatures, misconfigurations like accepting alg=none or mixing up HMAC and RSA keys turn a well-formed token into a full account takeover.

Most online decoders stop at showing the JSON. This tool goes one step further and applies a rule set drawn from common JWT attack classes: unsigned tokens, weak symmetric keys, missing expiry, overly long lifetimes, absent issuer/audience binding, and sensitive data hiding in claims. Think of it as a quick first-pass audit before you dig in with your own tests.

Examples

Why does my login keep failing after a few minutes?

Decode the token and look at the exp claim. If it is only minutes after iat, your access token lifetime is short by design — your client should be refreshing it.

Reviewing a third-party token

Before integrating an OAuth provider, paste one of its tokens to see which algorithm it signs with and which claims it exposes — a 30-second sanity check on their security posture.

Hunting leaked data

Scan the payload for sensitive claim names (password, apiKey, phone…). The analyzer flags them as critical, because JWT payloads are readable by anyone who sees the token.

Debugging 'invalid token' errors

If the analyzer reports missing exp/aud/iss while your verifier requires them, you have found the mismatch without touching server logs.

Formatting the payload as JSON

The decoded payload is displayed pretty-printed; copy it and open our JSON Formatter if you need to restructure or diff it.

Frequently Asked Questions

Is my token uploaded to your server?+
No. Decoding and analysis run entirely in your browser with JavaScript. You can verify this in DevTools: the page makes no network requests containing your token.
Can this tool verify a token's signature?+
No — signature verification needs the server's secret or public key, which only your backend should hold. This tool decodes and audits; your server must always verify signatures itself.
What does alg=none mean and why is it critical?+
It means the token has no signature at all. If a server accepts alg=none, an attacker can forge any payload (e.g. {"sub":"admin"}) and be trusted. Every JWT library should be configured to reject it.
Is HS256 unsafe?+
Not by itself — but it shares one secret between signer and verifier, and a short secret can be brute-forced offline. Use a random 256-bit+ secret, or switch to RS256/ES256 so verifiers never see the signing key.
How long should a token live?+
A common pattern: access tokens of 5–15 minutes plus rotating refresh tokens. Anything over 24 hours is flagged as a warning here, because a leaked token stays usable for its entire lifetime.
What's the difference between decoding and decrypting?+
Standard JWTs (JWS) are encoded, not encrypted — decoding reveals everything. Only JWE tokens hide the payload; those cannot be read without the decryption key, and this tool will report an unreadable payload.
Can I edit the payload and re-sign?+
No, and no legitimate tool should offer that without your own key. Editing claims without a valid signature is exactly how token-forgery attacks work — your server must reject such tokens.
Where do tokens usually hide in a request?+
The Authorization: Bearer <token> header, cookies, and occasionally URL parameters (a bad practice — tokens in URLs leak into logs). Percent-encoded tokens can be cleaned up with our URL Decoder first.

Related Tools

Looking for something else? Browse all tools