Free Tool

JWT Debugger with Security Warnings

Decode JSON Web Tokens and catch vulnerabilities other debuggers miss: alg:none, long-lived tokens, sensitive claims, and signature verification. 100% client-side.

Your token never leaves your browser

Frequently Asked Questions

What does this JWT debugger check for security-wise?

The algorithm in the header (flagging alg:none as critical), expiry and issued-at times (flagging tokens longer than 24 hours as high-risk), sensitive claim names like password, secret, ssn, or credit_card, whether the token is expired, and — when you provide a secret — whether the signature actually verifies. Most JWT debuggers just decode and show; this one tells you what's wrong.

Is it safe to paste my JWT here?

Yes. The debugger runs entirely in your browser — the token never leaves your machine, never hits our server, never reaches analytics. Verify this by opening DevTools Network tab and pasting a token: zero outbound requests.

What is alg:none and why is it dangerous?

alg:none is a JWT header value that tells the verifier to skip signature verification entirely. Attackers change a signed JWT's algorithm to none and strip the signature, and vulnerable libraries accept the unsigned token as valid. Any JWT library that accepts alg:none in production is a security bug.

Why do you flag tokens longer than 24 hours?

Access tokens should be short-lived (15-60 minutes) because they can't be revoked once issued. A stolen 30-day access token gives an attacker 30 days of access. For longer sessions, use a short-lived access token plus a refresh token that CAN be revoked from the server.

What's the difference between HS256 and RS256?

HS256 uses a shared secret — both the issuer and verifier need the same key, which means any service that verifies tokens can also forge them. RS256 uses a key pair — only the issuer has the private key, verifiers only need the public key and can't forge tokens. For microservices or multi-tenant systems, RS256 is almost always the right choice.