Skip to content
easytoolapp
  • Home
  • Text
  • Calculators
  • Converters
  • Date & Time
  • Generators
  • Developer
  • Design
  • Device
  • Health
  • Business
  • About
  • Contact
  1. Home/
  2. Developer/
  3. JWT Decoder
</>Developer

JWT Decoder

Paste a JWT to decode the header, payload and signature with color-coded parts, expiry countdown, and a token-lifetime bar. Verify HMAC signatures (HS256/384/512) with the secret using the Web Crypto API, or switch to Sign &amp; build to mint new tokens. Nothing is uploaded — everything runs in your browser.

All decoding, signing and verification happen in your browser via the Web Crypto API.

How to use this jwt decoder

  1. Paste your JWT into the input — header, payload and signature parse instantly.
  2. Read the algorithm, expiration, and color-coded claims with descriptions for the standard ones.
  3. Enter the secret to verify HS256/384/512 signatures via the Web Crypto API.
  4. Switch to Sign &amp; build to mint a new JWT from header + payload JSON and a secret.
  5. Use 'Set iat=now &amp; exp=+1h' for a quick test token.

Frequently asked questions

Why does my JWT show as expired but my backend still accepts it?

Likely clock skew. Many JWT libraries allow a 30-60 second leeway around `exp` and `iat` to handle servers with slightly different clocks. The decoder uses your browser's clock with no leeway — so a token that 'just' expired in your view may still be valid server-side. Also verify the secret matches: a wrong secret silently passes decode but should fail verify.

Which algorithms can be verified?

HMAC-SHA only (HS256, HS384, HS512). Asymmetric algorithms like RS256, ES256 and EdDSA still decode normally, but they need a public key to verify and aren't supported here.

Can I trust an unsigned JWT?

Never accept an alg of 'none' in production — that means the token is unsigned. The decoder flags it.

Why do I see Unix timestamps for exp/iat?

JWT spec stores time as Unix seconds. The tool shows both the raw number and a localized date.

Related tools

</>Developer

Base64 Encoder

Base64 encode/decode with UTF-8 and files.

</>Developer

Hash Generator

MD5, SHA-1/256/384/512, HMAC, files.

</>Developer

JSON Formatter

Format, validate, convert, analyze JSON.

</>Developer

URL Encoder

Encode, decode or parse URLs.

easytoolapp
AboutContactGuidesPrivacyTerms
© 2026 easytoolappEasy online tools for everyday tasks.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMzQ1IiwibmFtZSI6IkphbmUgRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjU3NjAwMCwiZXhwIjoyMDYxOTM2MDAwLCJpc3MiOiJ0b29sc3JhbmdlLmNvbSIsImF1ZCI6ImFwaSJ9.kJWxFbY1QH3xvqNYtY-QbR1V3cZ0fMQyPLsOYY9CJN4
Algorithm
HS256
HMAC + SHA — symmetric, shared secret
Signature
—
Enter the secret to verify
Expires in 3257d 8h

RS/ES (asymmetric) algorithms aren't HMAC-verifiable. The decoded contents above are still trustworthy, but the signature isn't checked here.

Header
{
  "alg": "HS256",
  "typ": "JWT"
}
Payload
{
  "sub": "user_12345",
  "name": "Jane Doe",
  "admin": true,
  "iat": 1746576000,
  "exp": 2061936000,
  "iss": "toolsrange.com",
  "aud": "api"
}
subuser_12345 · Subject — usually the user ID
nameJane Doe · Display name
admintrue · Administrator flag
iat1746576000 → 5/7/2025, 12:00:00 AM · Issued-at (Unix seconds)
exp2061936000 → 5/5/2035, 12:00:00 AM · Expiration time (Unix seconds)
isstoolsrange.com · Issuer — who issued the token
audapi · Audience — who the token is intended for
Token lifetime
Issued: 5/7/2025, 12:00:00 AMExpires: 5/5/2035, 12:00:00 AM