FREE
Loading…
Decode JWT tokens to inspect header and payload. Optionally verify HS256 signatures with a secret key.
Verify & Decode JWT
Processing…
FREE
Loading…
Verify & Decode JWT is a free online tool that decodes a JSON Web Token into its three constituent parts — header, payload, and signature — and displays each in a clearly separated, color-coded, pretty-printed view. It also checks the exp (expiration) claim against the current time and, when you supply the signing secret, cryptographically verifies an HS256 signature using the browser's native SubtleCrypto API.
A JWT is three Base64URL-encoded segments joined by dots: a header describing the signing algorithm and token type, a payload holding the actual claims (who the token represents, what it grants, when it expires), and a signature that binds the first two segments together so any tampering can be detected. The critical thing to understand about the first two segments is that Base64URL encoding is not encryption — it is a reversible text encoding, the same category of transformation as Base64 or URL-encoding, with no secret key involved in reading it. Anyone holding a JWT, including a browser extension, a network proxy, or a curious user opening devtools, can decode the header and payload and read every claim inside without knowing anything about how the token was signed. This is precisely why JWTs should never carry passwords, raw credit card numbers, or other genuinely secret data in their payload — only the signature is protected, never the content.
The signature is what actually matters for trust. It proves the token was issued by whoever holds the corresponding signing key and that the header and payload have not been altered since — decoding alone tells you nothing about whether a token is genuine, only what it claims to say. This distinction trips up a surprising number of implementations: code that decodes a JWT to read a user ID but never calls the actual verify function is trusting user-controlled input as if it were authenticated, because a payload can be freely edited and re-encoded by anyone, and only signature verification catches that the resulting token no longer matches what was originally signed.
JWTs use two broad signing approaches. HS256 (HMAC-SHA256) is symmetric — the exact same secret string is used both to sign the token and to verify it, so anyone who can verify a token could also forge one, which makes it appropriate mainly for single-service, first-party use where the signer and verifier are the same system. RS256 and ES256 are asymmetric — the token is signed with a private key that never leaves the issuing server, and verified anywhere using only the corresponding public key, which is why they are preferred whenever multiple independent services need to verify tokens issued by one central authority without being able to forge new ones themselves. This tool implements the interactive verify path for HS256 specifically, since that is the common case for testing tokens issued by your own backend where you already hold the shared secret.
Beyond the signature itself, several standard claims are worth checking manually every time: exp (expiration, a Unix timestamp after which the token must be rejected), iat (issued-at time), nbf (not-before, a time before which the token is not yet valid), iss (issuer), aud (intended audience), and sub (subject, typically the user ID). This tool automatically checks exp against your current system time and reports the token as valid or expired, but every other claim should be reviewed manually against what your application expects, since a syntactically valid, correctly signed token can still carry claims that do not authorize the specific action being attempted.
The token is split on its two dot separators into header, payload, and signature segments. The header and payload segments are Base64URL-decoded (converting the URL-safe alphabet back to standard Base64, restoring padding, and running the result through atob) and then parsed as JSON for display. If a payload contains an exp claim, that Unix timestamp is compared against Date.now() to report the token as currently valid or expired. When a secret is supplied for verification, the tool uses the browser's native SubtleCrypto API to import the secret as a raw HMAC key configured for SHA-256, computes an HMAC signature over the exact original header.payload string (not the decoded JSON, since re-encoding could produce different bytes), Base64URL-encodes that computed signature, and compares it directly against the signature segment from the token — a match confirms the token was signed with that exact secret and has not been altered since.
Paste your JWT
Paste the complete token — all three dot-separated segments: header.payload.signature — into the token field.
Decode
Click "Decode JWT" to instantly see the parsed header, payload, and raw signature, plus an automatic valid/expired status if the payload includes an exp claim.
Review the claims
Check the decoded payload for the specific claims your application cares about — sub, iss, aud, iat, and any custom claims — not just the automatic expiry check.
Enter the signing secret
If you need to confirm the token is genuine and not just well-formed, enter the HS256 secret used by the issuing server into the secret field.
Verify the signature
Click "Verify Signature" to have the tool recompute the expected HMAC-SHA256 signature and compare it against the token's actual signature.
Act on the result
Treat a VALID signature with an unexpired exp as trustworthy for your testing purposes; treat any INVALID result, or a missing check entirely, as proof the token cannot be trusted as-is.
Debugging Auth Issues
Paste a JWT from a failing request to instantly see its claims and verify whether the token has expired.
Testing Token Contents
Inspect the payload of tokens generated by your auth server to confirm custom claims are included correctly.
Signature Verification
Confirm that a token was signed with the correct secret key before trusting its claims in a staging environment.
Security Education
Demonstrate to developers that JWT payloads are readable without a secret to teach safe token handling practices.
Expiry Inspection
Check the exp claim and see a human-readable expiry time and validity status to diagnose session timeout bugs.
Third-Party Token Audit
Decode tokens received from external OAuth providers to verify the structure matches your expected schema.
No Secret Required to Decode
Header and payload are decoded instantly from any JWT without needing the signing secret, for quick inspection.
Expiry Status Indicator
Displays a clear valid or expired badge based on the exp claim so you can diagnose session issues at a glance.
Optional Signature Verification
Provide the HMAC secret to verify the signature cryptographically and confirm the token was not tampered with.
Color-Coded Sections
Header, payload, and signature are each rendered in a distinct color for easy visual separation.
Formatted JSON Output
Decoded header and payload are pretty-printed as JSON so nested claims are easy to read and copy.
Completely Private
All decoding and verification runs in your browser — your token and secret never leave your device.
Also Known As
Binary To Decimal
Convert between binary, decimal, hex and octal number systems
Color Converter
Convert colors between HEX, RGB, and HSL formats
Convert Binary
Convert binary numbers to text and text to binary
Convert Timestamp
Convert Unix epoch timestamp to standard date format and back
Count Words
Count words, characters, sentences and paragraphs in text
Convert Datetime
Convert datetime between different formats and timezones
Trusted Worldwide
iLoveDocsTools is used by students, professionals, and businesses across the United States, Canada, United Kingdom, Australia, India, and more than 100 other countries. All tools are browser-based and process files privately — your files never leave your device. Free to use, with Pro plans for unlimited access.
All processing happens directly in your browser. Your documents are never sent to any server — complete privacy guaranteed for users in the USA, Canada, UK, and worldwide.
Every tool on iLoveDocsTools is free to use. Need more? Upgrade to Pro for unlimited usage, priority access, and no daily limits. Trusted by students, freelancers, and teams across North America and Europe.
Whether you are on a Mac, Windows PC, iPhone, or Android in New York, Toronto, London, or Sydney — our tools work instantly in any modern browser.
Looking for free PDF tools in the USA? Free document converters in Canada? Online PDF editors in the UK or Australia? iLoveDocsTools offers 70+ free tools — merge PDF, split PDF, compress PDF, convert Word to PDF, Excel to PDF, JPG to PDF, and many more — all free, all instant, all private. No watermarks. No file size limits. Just free tools that work.