Skip to tool
Security

JWT Debugger

Decode, verify, and sign JSON Web Tokens while keeping keys in the browser.

Web Worker Local onlyTools
Input0 characters
Result0 characters
Ready

Every token is evidence · every verdict names its proof

Decoded is not verified.

A readable header and payload prove only that two Base64URL segments contain JSON. Trust arrives later—from an expected algorithm, the right key, a valid time window, and your issuer/audience policy.

01Decoded · untrusted

Header

{ "alg": "HS256", "typ": "JWT" }
02Decoded · untrusted

Payload

{ "sub": "123", "aud": "devsexy-api", "exp": 1766073600 }
03Opaque until verified

Signature

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Trust ladder

Each rung proves only the next fact.

01

Compact shape

Exactly three non-empty URL-safe segments

02

JSON decoded

Header and claims are readable—not trustworthy

03

Signature verified

Integrity under an expected algorithm and key

04

Time accepted

exp / nbf with an explicit clock-skew policy

05

Issuer & audience accepted

Application configuration matches the claims

06

Domain policy accepted

Roles, tenant, scope, nonce, and revocation rules pass

Algorithm / key contract

The token’s alg field is input, not policy.

HS256 / 384 / 512Shared secret

Signer and verifier know the same key

Supported in this workbench

RS256 / PS256RSA public key

Private key signs; public key verifies

Use a production JOSE library

ES256 / EdDSAElliptic / EdDSA public key

Key type and curve must match

Use a production JOSE library

noneNo key

No integrity protection

Reject unless an isolated protocol explicitly allows it

NumericDate clock

JWT time claims are epoch seconds.

NOW · 1,716,073,600

iat1,716,070,000Issued 60 minutes ago
nbf1,716,072,700Active for 15 minutes
exp1,716,075,400Expires in 30 minutes

Milliseconds accidentally supplied as seconds land tens of thousands of years away. Clock skew is a deliberate verifier setting, not a reason to ignore expiry.

Issuer & audience checkpoint

A valid signature from the wrong authority is still rejection.

isshttps://id.example.test/

Exact trusted issuer match

aud["devsexy-api", "account"]

At least the required audience under your policy

tenantproduction-eu

Private claim checked by domain policy

scopetools:read

Authorization still belongs to the resource server

Debugger threat desk

Handle the debugger like a bearer-token workbench.

Bearer exposure

HIGH

Tokens in URLs, screenshots, logs, clipboard history, and tickets can be replayed.

Weak HMAC secret

HIGH

Short or guessable shared secrets can be brute-forced offline.

Algorithm confusion

CRITICAL

Pin an allowlist; never let attacker-controlled alg select policy.

Untrusted kid / JWK URL

HIGH

Never turn header key hints into unrestricted file or network lookup.

Signing in a browser

REVIEW

Use test keys only; production signing keys belong in controlled infrastructure.

Direct answer

What is JWT Debugger?

Decode JWT header and claims without a key, verify supported HMAC signatures locally, inspect NumericDate claims, and separate cryptographic proof from application policy.

What can it do?

  • Decode
  • Verify
  • Sign

How to use JWT Debugger

  1. 01

    Choose a task

    Select Decode, Verify, and Sign in the workspace.

  2. 02

    Provide the input

    Paste a JWT or payload. The input stays in the browser processing path.

  3. 03

    Review the result

    Run the tool, inspect its result and diagnostics, then copy or download the output when the page offers that action.

Frequently asked questions

What is JWT Debugger?
Decode JWT header and claims without a key, verify supported HMAC signatures locally, inspect NumericDate claims, and separate cryptographic proof from application policy.
What can JWT Debugger do?
JWT Debugger supports Decode, Verify, and Sign. Each mode is available directly in the page workspace.
Does JWT Debugger upload my data?
JWT Debugger processes your input locally in the browser. DevSexy does not add an upload, account, or server-processing step to this workflow.
DevSexy processes tool input locally. No paste tracking, accounts, or upload step.