RFC 7519 • HMAC / RSA / ECDSA
Coding

JWT Token Inspector & Decoder

RFC 7519

Encoded Token

Base64URL
HeaderPayloadSignature
215 chars • 3 parts

Signature Verification

Token Algorithm: HS256
Expired 17d 4h ago
Local: 10/23/2026, 7:33:20 PM

Decoded Header

{
  "alg": "HS256",
  "typ": "JWT"
}

Decoded Claims Payload

{
  "sub": "user_1234567890",
  "name": "Alexander Hamilton",
  "admin": true,
  "iat": 1761257600,
  "exp": 1792784000
}

Cryptographic Signature

5OgHGwzgC8GtLeB3wu_seirNiPi24AD-K1wX6ILXEUg
Feature Comparison & Architectural Audit

How PrivaUtils Compares to jwt.io, 10015.io, Token.dev & SuperTokens

Many online JWT debuggers send tokens to remote backend servers, lack Base64 secret toggles, fail to support asymmetric public key verification in-browser, or lack mobile responsiveness. Here is the verified capability matrix:

Capability / FeaturePrivaUtilsjwt.io10015.iotoken.devgorest.co.in
Execution ArchitectureLocal Browser MemoryLocal BrowserLocal BrowserLocal BrowserLocal Browser
Hardware HMAC Verification (HS256, HS384, HS512)Yes (SubtleCrypto)YesNo (Decoder only)YesNo (Decoder only)
Public Key Verification (RS256, ES256)Yes (PEM & JWK)Yes (PEM only)NoYesNo
Base64 Secret Toggle SwitchYes (Binary safe)YesNoNoNo
Live Token Encoder & Builder ModeYes (Real-time auto-signing)YesBasic encoderYesNo
Security Vulnerability & Secret Leak LintingYes (alg none, leaks, exp audit)NoNoBasic flagsBasic exp flag
Live Expiration Countdown & Relative TimeYes (Live relative strings)NoNoYesYes
Persistent Settings Vault & Export/ImportYes (IndexedDB Vault)NoNoNoNo
Distraction-Free Fullscreen & Pane MaximizerYes (Global + per-pane)NoNoNoNo
Responsive Mobile & Foldable DensityYes (Down to 280px)Clipped/BrokenStandardClipped/BrokenStandard
RFC 7519 Specification & JWS Architecture

The Comprehensive Engineering Guide to JSON Web Tokens, JWS Signatures, and Zero-Trust Verification

Standardized by the Internet Engineering Task Force (IETF) in RFC 7519 and formally aligned with JSON Web Signature (RFC 7515), JSON Web Tokens (JWT) provide a compact, URL-safe container for transferring identity claims between parties. Modern authorization flows rely on JWTs for OAuth 2.0 bearer tokens, OpenID Connect (OIDC) identity profiles, and microservice service-to-service calls.

1. JOSE Header (Red)

Algorithm & Key Parameters

The JOSE header specifies the cryptographic signature algorithm applied to the token (such as HS256 or RS256), token format (typ: "JWT"), and optional key references (kid) corresponding to JSON Web Key Sets (JWKS).

2. Claims Payload (Purple)

Standard & Custom Claims

The payload contains statements regarding identity and permissions. RFC 7519 specifies registered claims including iss (Issuer), sub (Subject), aud (Audience), and temporal claims like exp, nbf, and iat.

3. Digital Signature (Cyan)

Cryptographic Authenticity

The signature is computed over the Base64URL-encoded header and payload concatenated with a period. It guarantees that neither claims nor headers have been tampered with since issuance by the keyholder.

Compact Serialization and Base64URL Encoding Mechanics

A standard serialized JWT consists of three ASCII strings concatenated by period delimiters:

// RFC 7519 Compact Serialization Format
Base64URL(Header) . Base64URL(Payload) . Base64URL(Signature)

Base64URL encoding (RFC 4648 §5) differs from standard Base64:

  • Plus signs (+) are replaced with hyphens (-).
  • Forward slashes (/) are replaced with underscores (_).
  • Trailing padding equal signs (=) are omitted.

This character set allows tokens to be safely transmitted in HTTP query parameters, path variables, and Authorization: Bearer <token> headers without escaping.

Cryptographic Signature Verification via WebCrypto SubtleCrypto

Signature computation for HMAC-SHA256 (HS256) processes the binary ASCII bytes of the first two segments:

signingInput = ASCII(Base64URL(Header) + "." + Base64URL(Payload))
computedSignature = HMAC-SHA256(secretKey, signingInput)
isValid = (Base64URL(computedSignature) === tokenSignature)

PrivaUtils runs this validation directly on your device via the W3C crypto.subtle.importKey and crypto.subtle.sign APIs. The secret key remains in transient component memory and is never dispatched across network interfaces.

Temporal Claim Boundaries: exp, nbf, and iat

Proper token consumption requires checking temporal boundaries represented as integer seconds since the UNIX epoch (1970-01-01T00:00:00Z):

exp (Expiration Time)

The exact second after which the token must be rejected. Gateways must discard requests arriving after this time.

nbf (Not Before)

Identifies the earliest instant at which the token is valid. Requests arriving prior to this time must be rejected.

iat (Issued At)

Records when the authentication provider issued the token. Used to invalidate tokens issued before a password change.

Common JWT Security Pitfalls & Mitigation Strategies

  • Unsigned Tokens (alg: none): Certain libraries accept unsigned tokens if the algorithm header is set to none. Production services must whitelist supported algorithms explicitly and reject none.
  • Weak HMAC Shared Secrets: If an HS256 secret is short or based on dictionary words, attackers can capture a token and brute-force the secret offline. RFC 7518 specifies that HS256 secrets must contain at least 256 bits (32 bytes) of random entropy.
  • Audience & Issuer Validation: Cryptographic validity alone only proves key possession. Systems must also verify that iss matches the trusted authority and aud matches the receiving service.
  • Sensitive Information in Claims: Because payloads are unencrypted, credentials, private API keys, or personal health and financial data must never be stored in claims.

Frequently Asked Questions (FAQ)

What is the difference between JWS, JWE, and JWT?

A JSON Web Token (JWT) is the high-level specification for representing claims. JSON Web Signature (JWS) signs the payload for authenticity while leaving it readable. JSON Web Encryption (JWE) encrypts the payload so only the private keyholder can read it.

Why does my Base64-encoded secret fail verification?

Identity systems like Supabase and Auth0 often supply secrets as Base64 strings. If your server decodes this string to raw binary bytes before signing, enable the "Secret is Base64 encoded" checkbox so PrivaUtils decodes the secret before running HMAC SHA-256.

Can I use PrivaUtils offline?

Yes. All token parsing, Base64URL decoding, WebCrypto signature validation, and token generation algorithms execute locally inside your browser. You can inspect and build tokens in Airplane Mode without an active network connection.

How does the live Token Builder work?

In Encoder & Builder mode, any modification to the Header JSON, Payload claims, or Secret Key automatically recomputes the Base64URL serialization and cryptographic HMAC signature in real time, producing a production-ready token string.

Related Privacy Utilities

Peer tools running locally in your browser memory without server uploads.

Explore all utilities