// decode JWTs without sending data to a server
Security Notice
This tool works entirely in your browser. No data is sent to any server. Note that this tool only decodes JWTs, it does not verify signatures.
Claim | Value |
---|
Claim | Value |
---|
Error
Step-by-step guide to decoding and verifying your JSON Web Tokens
This JWT decoder tool allows you to securely inspect and verify JSON Web Tokens (JWTs) without sending sensitive data to any server. Whether you're debugging authentication issues, developing JWT-based applications, or just learning about JWTs, this tool gives you a visual breakdown of token structure and validation capabilities.
The decoder supports token inspection, data extraction, and signature verification (currently supporting HS256 algorithm). All operations happen entirely in your browser - your tokens and secrets never leave your device, making it safe for security-sensitive work.
Tip: If you don't have a JWT handy, click the "Example" button to load a sample token for testing.
Make sure your JWT contains three parts separated by dots. A valid JWT looks like: xxxxx.yyyyy.zzzzz
Double-check that you're using the correct secret key and that you've selected the right secret format (UTF-8 or Base64).
Ensure your JWT is correctly formatted without extra spaces or line breaks, especially if you copied it from a log file or email.
Security Note: This tool processes everything locally in your browser. Your tokens and secrets are never sent to any server, making it safe for handling sensitive authentication data.
Secure, compact, and self-contained tokens for information transmission
JSON Web Tokens (JWTs) are an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. This information can be verified and trusted because it is digitally signed using a secret key (with HMAC) or a public/private key pair using RSA or ECDSA.
Although JWTs can be encrypted to provide secrecy between parties, signed tokens focus on verifying the integrity of the claims within. When tokens are signed using public/private key pairs, the signature also certifies that only the party holding the private key is the one that signed it.
A JWT consists of three parts separated by dots (.
), which are:
{"alg": "HS256", "typ": "JWT"}
. This is Base64Url encoded.HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
.The payload portion of a JWT contains claims about the entity, typically the user and additional metadata:
iss
(issuer), exp
(expiration time), sub
(subject), aud
(audience), and others. These claims are not mandatory but recommended to provide a set of useful, interoperable claims.Security Note: For signed tokens, the information contained within the token is exposed to users or other parties, even though they are unable to change it. This means you should not put secret information within the token unless it is encrypted.
Common questions about JWT tokens and this decoder
Yes, this JWT decoder is designed with security in mind. All processing happens directly in your browser - no data is sent to our servers. Your tokens and private keys never leave your device, making it safe for handling sensitive information.
Since JWTs often contain authentication information, it's crucial that they're decoded securely. This tool uses your browser's built-in JavaScript capabilities to decode and verify tokens without external dependencies or server calls.
Decoding a JWT involves converting the Base64URL encoded header and payload back into JSON, allowing you to read these parts. Anyone can decode a JWT without needing a key, as the data is only encoded, not encrypted.
Verifying a JWT involves checking the signature to ensure the token hasn't been altered and was created by a trusted source. This requires the secret key (for HMAC algorithms) or the public key (for RSA/ECDSA algorithms) that corresponds to the key used to sign the token.
This tool lets you do both: decode JWTs to inspect their contents and verify signatures to confirm their authenticity.
Currently, this tool supports verification for:
Support for the following algorithms is planned for future updates:
When verifying JWT signatures with HMAC algorithms:
If your JWT was created with a text-based secret, use UTF-8. If it was created with a binary secret (that was likely encoded as Base64 for storage), use Base64.
In authentication systems, JWTs typically work like this:
This approach allows for stateless authentication, where the server doesn't need to store session information - all necessary data is contained within the token itself.
Yes, there are several important security considerations when working with JWTs:
To decode and verify JWTs in your own applications, you can use libraries available for most programming languages:
Most JWT libraries provide functions to both decode JWTs (read their contents without verification) and verify JWTs (check their signatures to confirm authenticity).
For quick debugging and exploration, you can always use this online tool without installing any dependencies.