📚 Complete Guide & FAQ
🚀 Quick Start Guide
- Paste a JWT token in the left editor to decode it instantly
- View decoded header, payload, and signature separately
- Verify token signature with the secret key
- Generate new tokens with custom claims
- Check token expiration and validation status
🔍 Understanding JWT Structure
Header: Contains token type and signing algorithm
Payload: Contains claims (data) about the entity
Signature: Ensures token hasn't been altered
Format: header.payload.signature
📋 Standard JWT Claims
iss - Issuer of the token
sub - Subject of the token
aud - Audience for the token
exp - Expiration time (Unix timestamp)
nbf - Not valid before time
iat - Issued at time
jti - JWT ID (unique identifier)
❓ Frequently Asked Questions
What is JWT decoding and why do I need it? JWT decoding is the process of extracting and viewing the contents of a JSON Web Token without verification. It reveals the header and payload data, helping developers debug authentication issues, inspect token claims, and understand token structure. This is essential for API development, troubleshooting authentication flows, and ensuring your tokens contain the correct information. Our tool makes this process instant and secure, processing everything locally in your browser without any server-side processing. Whether you're debugging OAuth flows, inspecting API responses, or learning about JWT architecture, our decoder provides instant visibility into token contents while maintaining complete privacy and security for your sensitive authentication data. How do I decode a JWT token online safely? Our JWT decoder processes everything locally in your browser using JavaScript, ensuring complete privacy and security. Simply paste your token into the input field, and it instantly decodes the header and payload without transmitting any data to our servers. Your tokens and secret keys never leave your device, ensuring complete privacy and security. No server-side processing means your sensitive data stays private and secure. The tool works offline once loaded, providing an additional layer of security for handling sensitive authentication tokens. This client-side approach means you can safely decode production tokens, test authentication flows, and debug API integrations without compromising security or exposing sensitive data to third parties or external systems. What is the difference between JWT encoding and signing? JWT encoding converts JSON data into Base64URL format to create the token structure - it's simply a data transformation that makes the token URL-safe and transmittable across networks. JWT signing adds a cryptographic signature using a secret key (for HS256/HMAC algorithms) or private key (for RS256/RSA algorithms) to ensure the token hasn't been tampered with. Encoding creates the token format that can be transmitted safely across networks and stored in cookies or local storage, while signing provides security and integrity verification to detect any modifications. Think of encoding as packaging the data for transport, and signing as sealing it with a tamper-evident seal. Always use proper signing in production environments to prevent token manipulation and unauthorized access to your application resources. How can I verify a JWT signature online? To verify a JWT signature, enter your token in the left panel and the secret key used to sign it in the secret key field. Click the "Verify Signature" button, and the tool recalculates the signature using your provided key and compares it with the token's existing signature. If they match, the token is valid and unaltered. For RS256 tokens using RSA encryption, you'll need the public key for verification instead of the private key used for signing. This verification process ensures that the token hasn't been modified since it was created, which is crucial for security in authentication systems. The entire verification happens in your browser using client-side cryptographic libraries, so your secret keys remain private and secure. This is essential for debugging authentication issues and ensuring token integrity in your applications. What are JWT claims and which ones are standard? JWT claims are pieces of information asserted about the token subject, stored in the payload section of the token. Standard registered claims include: iss (issuer) identifies who created the token and issued it, sub (subject) identifies the token's subject or user entity, aud (audience) identifies intended recipients of the token, exp (expiration time) sets when the token expires and becomes invalid, nbf (not before) sets when the token becomes valid, iat (issued at) records creation time, and jti (JWT ID) provides a unique identifier for the token. You can also add custom claims for application-specific data like user roles, permissions, preferences, or session information. However, avoid storing sensitive information like passwords, credit card numbers, or social security numbers as JWT payloads are only encoded, not encrypted, and can be easily decoded by anyone with access to the token. How do I generate a secure JWT secret key? Use our built-in secret key generator to create cryptographically secure keys with proper randomness and entropy. For HS256, use at least 256 bits (32 characters) of random data. For stronger security with HS384 or HS512, use 384 or 512 bits respectively. For RS256/RS512 asymmetric encryption, generate proper RSA key pairs with at least 2048-bit keys (4096-bit recommended for high-security applications and sensitive data). Never use weak secrets like "secret", "password", "123456", or any dictionary words that can be easily guessed. Store keys securely in environment variables, secure key management systems like AWS KMS or HashiCorp Vault, rotate them regularly (every 90 days recommended for production systems), and never commit them to version control systems like Git or expose them in client-side code. Our generator creates cryptographically secure random keys suitable for production use with proper entropy and randomness. Can I check if my JWT token has expired? Yes! Our tool automatically checks the exp (expiration) claim against the current time whenever you decode a token. It also validates nbf (not before) and iat (issued at) claims to ensure token validity across its entire lifecycle. The status indicator shows whether your token is currently valid, expired, or not yet active based on these timing claims. Click the "Check Expiration" button for detailed timing information including exact timestamps and time remaining until expiration. This helps prevent using outdated tokens in your applications and assists in debugging authentication issues related to token timing. The tool displays exact timestamps in both human-readable format and Unix timestamp format, and calculates time differences for easy troubleshooting of token timing issues. You'll see exactly when the token was issued, when it expires, and how much time remains before expiration. What algorithms are supported for JWT signing and which should I use? We support HS256, HS384, HS512 (HMAC with SHA-256/384/512), RS256, RS384, RS512 (RSA with SHA-256/384/512), and none (unsecured - never use in production environments). HS algorithms use symmetric keys where the same secret key is used for both signing and verification - ideal for server-to-server communication within trusted environments where both parties can securely share the secret. RS algorithms use asymmetric keys where a private key signs and a public key verifies - perfect for distributed systems, microservices architectures, and public APIs where you don't want to share secrets with consumers or third-party applications. HS256 is most common for simple applications due to its speed, simplicity, and lower computational overhead, while RS256 is preferred for microservices architectures, mobile apps, single-page applications, and public APIs where tokens need to be verified by multiple parties. Choose based on your security requirements, system architecture, distribution model, and whether you need to share verification capabilities with third parties.💡 Pro Tips: Always validate tokens server-side in production, use HTTPS for token transmission to prevent interception, implement token refresh mechanisms for better user experience, store tokens securely in httpOnly cookies rather than localStorage, and regularly rotate your secret keys for maximum security. Need help or have suggestions? Visit our Support Center for assistance.