Free JSON formatter & validator: beautify, validate, auto-repair, and query JSONPath 100% locally in your browser. Fast, private, with zero server uploads.
Use tool
"{ }"
Stringify JSON Online
Free tool to stringify JSON online: escape JSON into string literals or unescape stringified payloads back to JSON. 100% private in-browser.
Use tool
๐
SEO Content Checker & SERP Simulator
Free online SEO content checker: audit readability, analyze keyword density, check heading hierarchy, and simulate Google SERP snippets 100% locally in-browser.
Common queries and details about using this utility.
For HMAC algorithms like HS256, HS384, and HS512, the cryptographic signature is computed by hashing the Base64URL-encoded header and payload with a shared secret key using the Web Cryptography API (SubtleCrypto.verify). The browser calculates the HMAC digest locally in microseconds and compares it against the third segment of the token using constant-time comparison.
No. The entire decoding, signature verification, and claims analysis processes run 100% client-side in your local browser sandbox. No tokens, secret keys, passwords, or claims data are ever transmitted to any backend server or stored in any remote datastore.
An 'alg: none' token specifies the unsecured JWT profile from RFC 7519 Section 6. In vulnerable backend libraries (CVE-2015-9235), attackers could strip the signature and set alg to 'none', tricking the server into accepting forged claims. Our studio flags 'alg: none' tokens with a high-visibility warning banner so you can audit authentication safety.
These are standard RFC 7519 registered claims expressed in seconds since the Unix Epoch (1970-01-01T00:00:00Z): 'exp' (Expiration Time) marks when the token becomes invalid; 'nbf' (Not Before) defines the earliest timestamp the token may be accepted; and 'iat' (Issued At) records token issuance time.
Standard Base64 uses '+' and '/' characters with '=' padding, which require URL encoding when passed in HTTP query strings or headers. Base64URL (RFC 4648 Section 5) replaces '+' with '-' (hyphen) and '/' with '_' (underscore), and omits trailing '=' padding to make tokens URL-safe and compact.
Yes. You can paste raw HTTP Authorization headers directly. Use our 1-click 'Strip Bearer' quick action button above the editor, or use the Alt+B keyboard shortcut to immediately strip 'Bearer ', surrounding quotation marks, and extraneous whitespace.
Currently, signature verification is optimized for HMAC symmetric algorithms (HS256) where you provide the shared secret. For asymmetric algorithms like RS256 (RSA) or ES256 (ECDSA), verifying signatures requires the public key (typically distributed via JWKS endpoints). You can still decode and inspect all headers and claims for any asymmetric token.
Switch to 'Builder Mode' using the toggle or Alt+M. You can edit header attributes, customize payload claims as raw JSON, enter a secret key, and the studio instantly generates a cryptographically signed, compliant JWT token ready for your test suite or API requests.
Open the Developer API Code Snippets Studio (Alt+S) to view and copy zero-dependency, production-ready verification snippets across 7 programming languages: Node.js (jsonwebtoken), Python (PyJWT), Go (golang-jwt), Rust (jsonwebtoken), Java (JJWT), Bash (OpenSSL + jq), and cURL. You can also download ready-to-run script files (.ts, .py, .go, .rs, .java, .sh) directly with one click.
Press 'Alt+K' or '?' to open the Keyboard Shortcuts Guide. Keybindings include 'Alt+P' for DevToys Smart Clipboard Auto-Detect, 'Alt+V' to toggle 2-Column Split vs Stacked layout density, 'Alt+S' for the API Code Snippets modal, 'Alt+R' to load a random preset scenario, 'Alt+M' to switch between Decoder and Builder studio, 'Alt+C' to copy the RFC 4180 Claims CSV matrix, 'Alt+T' to copy the full token, 'Alt+J' to beautify JSON payload claims, 'Alt+B' to strip Bearer prefixes, '/' to focus the token input area, 'Ctrl+Enter' to verify or copy signed tokens, and 'Escape' to dismiss active dialogs or reset inputs.
Advertisement
โก
Chained Workflows (Piping)
Send this tool's output directly into another utility without manual copy-paste.
๐ซDeveloper Security & Token Debugger Studio
JWT Decoder & Verifier Suite
Decode, inspect, and sign JSON Web Tokens (RFC 7519) offline with 100% privacy. Analyze claims, relative expiration countdowns, and verify HMAC HS256/384/512 signatures using browser WebCrypto with zero server logging.
โก100% Client-Side JS
Parsed locally in WebCrypto
๐Zero Server Retention
Tokens & keys never leave device
๐HS256/384/512 Verifier
Native SubtleCrypto engine
๐ Countdown & Diagnostics
Live relative expiry diagnostics
๐1-Click Code & Formats
Multi-language snippets & exports
โกStarter Presets
Hotkeys: / focus, Esc clear, Ctrl+Enter run
Sanitize:
๐ซ
No Decoded JWT Data
Paste an encoded JWT string, load a file, paste from clipboard, or click a starter benchmark scenario below:
Cryptographic hash produced by signing Base64URL(header) + . + Base64URL(payload) with private key or secret.
dBjftJeZ4CVP...FOEjXk
iss (Issuer)
RFC 7519 ยง4.1.1
Identifies principal that issued the JWT (e.g., Auth0, Google, Okta, Keycloak).
"https://auth.telekit.link"
sub (Subject)
RFC 7519 ยง4.1.2
Identifies principal that is the subject of the JWT (unique user UUID or service ID).
"user_892341"
exp (Expiration)
RFC 7519 ยง4.1.4
Unix timestamp (seconds) after which token MUST NOT be accepted for processing.
1750003600
nbf (Not Before)
RFC 7519 ยง4.1.5
Unix timestamp (seconds) before which token MUST NOT be accepted for processing.
1750000000
JWT Security & Implementation Best Practices
Essential architectural safeguards when implementing JWT authentication in production
๐ก๏ธReject 'alg: none' Unconditionally
Always enforce strict algorithm whitelisting on backend servers. Never allow incoming client tokens to dictate the verification algorithm without server-side validation (CVE-2015-9235).
๐Sufficient HMAC Secret Key Entropy
When using HS256, use a cryptographically random secret key of at least 256 bits (32 bytes). Short or dictionary words can be cracked offline in seconds with GPU hashcat tools.
โณShort-Lived Access Tokens
Keep access token lifespans short (5 to 15 minutes) and pair them with rotating refresh tokens stored in secure, HttpOnly, SameSite=Strict cookies to limit exposure upon token theft.
๐Tokens are Not Encrypted by Default
Standard JWTs (JWS) are digitally signed but plaintext Base64URL readable. Never store passwords, PII, credit card numbers, or proprietary secrets inside payload claims without JWE encryption.
Desktop Keyboard Shortcuts Reference
Boost your token debugging speed with instant hotkeys for parsing, copying, and layout switching
Keybinding
Action Name
Scope & Description
Alt + P
Smart Clipboard Auto-Detect
Auto-detects and parses raw JWTs, curl commands, or Authorization Bearer headers from clipboard
Alt + K / ?
Shortcuts Guide Dialog
Opens the interactive modal cheat sheet of power-user desktop shortcuts
Alt + S
API Code Snippets Modal
Opens backend verification code and 1-click script downloads across 7 languages
Alt + V
Toggle Layout Density
Toggles 2-Column Side-by-Side Split Studio (max-w-7xl) vs Full-Width Stacked view (max-w-4xl)
Everything you need to know about JWT decoding, signing, and signature verification
How does JWT signature verification work in this tool?
For HMAC algorithms like HS256, HS384, and HS512, the cryptographic signature is computed by hashing the Base64URL-encoded header and payload with a shared secret key using the Web Cryptography API (SubtleCrypto.verify). The browser calculates the HMAC digest locally in microseconds and compares it against the third segment of the token using constant-time comparison.
Are my tokens or secret keys sent to a server?
No. The entire decoding, signature verification, and claims analysis processes run 100% client-side in your local browser sandbox. No tokens, secret keys, passwords, or claims data are ever transmitted to any backend server or stored in any remote datastore.
What is the critical security risk of an 'alg: none' JWT token?
An 'alg: none' token specifies the unsecured JWT profile from RFC 7519 Section 6. In vulnerable backend libraries (CVE-2015-9235), attackers could strip the signature and set alg to 'none', tricking the server into accepting forged claims. Our studio flags 'alg: none' tokens with a high-visibility warning banner so you can audit authentication safety.
How do exp, nbf, and iat timing claims work?
These are standard RFC 7519 registered claims expressed in seconds since the Unix Epoch (1970-01-01T00:00:00Z): 'exp' (Expiration Time) marks when the token becomes invalid; 'nbf' (Not Before) defines the earliest timestamp the token may be accepted; and 'iat' (Issued At) records token issuance time.
What is the difference between Base64 and Base64URL encoding?
Standard Base64 uses '+' and '/' characters with '=' padding, which require URL encoding when passed in HTTP query strings or headers. Base64URL (RFC 4648 Section 5) replaces '+' with '-' (hyphen) and '/' with '_' (underscore), and omits trailing '=' padding to make tokens URL-safe and compact.
Can I decode a token that has the 'Bearer ' prefix attached?
Yes. You can paste raw HTTP Authorization headers directly. Use our 1-click 'Strip Bearer' quick action button above the editor, or use the Alt+B keyboard shortcut to immediately strip 'Bearer ', surrounding quotation marks, and extraneous whitespace.
Can this tool verify RS256, ES256, or asymmetric tokens?
Currently, signature verification is optimized for HMAC symmetric algorithms (HS256) where you provide the shared secret. For asymmetric algorithms like RS256 (RSA) or ES256 (ECDSA), verifying signatures requires the public key (typically distributed via JWKS endpoints). You can still decode and inspect all headers and claims for any asymmetric token.
How does the built-in JWT Builder & Signer work?
Switch to 'Builder Mode' using the toggle or Alt+M. You can edit header attributes, customize payload claims as raw JSON, enter a secret key, and the studio instantly generates a cryptographically signed, compliant JWT token ready for your test suite or API requests.
How can I programmatically verify tokens in my backend?
Open the Developer API Code Snippets Studio (Alt+S) to view and copy zero-dependency, production-ready verification snippets across 7 programming languages: Node.js (jsonwebtoken), Python (PyJWT), Go (golang-jwt), Rust (jsonwebtoken), Java (JJWT), Bash (OpenSSL + jq), and cURL. You can also download ready-to-run script files (.ts, .py, .go, .rs, .java, .sh) directly with one click.
Which keyboard shortcuts are available in the JWT Studio?
Press 'Alt+K' or '?' to open the Keyboard Shortcuts Guide. Keybindings include 'Alt+P' for DevToys Smart Clipboard Auto-Detect, 'Alt+V' to toggle 2-Column Split vs Stacked layout density, 'Alt+S' for the API Code Snippets modal, 'Alt+R' to load a random preset scenario, 'Alt+M' to switch between Decoder and Builder studio, 'Alt+C' to copy the RFC 4180 Claims CSV matrix, 'Alt+T' to copy the full token, 'Alt+J' to beautify JSON payload claims, 'Alt+B' to strip Bearer prefixes, '/' to focus the token input area, 'Ctrl+Enter' to verify or copy signed tokens, and 'Escape' to dismiss active dialogs or reset inputs.