Decodificación Local Instantánea
El header y el payload se decodifican y se formatean como JSON en el momento en que pegas el token — sin botones que pulsar.
Decodifica el header, payload y signature de un JWT (JSON Web Token) al instante. Consulta el estado de los claims exp, iat y nbf. 100% del lado del cliente, sin subidas, sin rastreo.
Instant JWT decoding with claim status indicators and pretty-printed JSON — right in your browser. No uploads, no sign-up, no limits.
Copia un JWT y pégalo en la caja de entrada superior.
El header decodificado (algoritmo) y el payload (claims) aparecen como JSON formateado.
Los claims iat, nbf y exp se resaltan — los tokens expirados o aún no válidos se marcan en rojo o amarillo.
Usa el botón Copiar para copiar el header o el payload JSON decodificado.
El header y el payload se decodifican y se formatean como JSON en el momento en que pegas el token — sin botones que pulsar.
Los claims `exp`, `nbf` e `iat` se analizan y comparan con la hora actual, con un estado claro codificado por colores para tokens expirados, aún no válidos y activos.
Decodifica correctamente los payloads Base64URL que contienen caracteres no ASCII, incluidos emoji y texto internacional.
A JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. JWTs are commonly used for authentication and authorization in web applications. After a user logs in, the server issues a JWT containing claims about the user (such as their user ID and roles). The client includes this JWT in the Authorization header of subsequent requests, allowing the server to verify the user's identity without storing session state.
A JWT consists of three parts separated by dots: `header.payload.signature`. The header specifies the token type (JWT) and the signing algorithm (e.g., HS256, RS256). The payload contains the claims — statements about the user and additional metadata. The signature is used to verify that the token hasn't been tampered with. Only the header and payload are Base64URL-decoded to read the claims; the signature is a binary value used only for verification.
Decoding a JWT means Base64URL-decoding the header and payload to read the claims. This does not require any secret key — anyone can decode a JWT. Decoding tells you what the token claims, but it does not prove that the claims are true or that the token was issued by a trusted party.
Verifying a JWT means checking the signature using the secret key (for HMAC algorithms) or public key (for RSA/ECDSA algorithms). This confirms that the token was issued by the holder of the secret/private key and that it hasn't been modified since. Only verified tokens should be trusted for security decisions. Our tool decodes JWTs but does not verify them — for verification, use a library like jsonwebtoken (Node.js) or PyJWT (Python).
Registered claims (defined in RFC 7519): `sub` (subject — the user ID), `iss` (issuer), `aud` (audience), `exp` (expiration time), `nbf` (not before), `iat` (issued at), `jti` (JWT ID). Private claims: custom claims agreed upon by the parties, such as `role`, `permissions`, `email`, or `name`. Our tool displays all claims in the payload as formatted JSON.
Inspecciona los claims de un JWT emitido por tu servidor de autenticación para confirmar el ID de usuario, los roles o la expiración.
Verifica rápidamente que el JWT que generas en el servidor contiene el payload esperado antes de enviarlo al cliente.
Mira exactamente cómo está estructurado un JWT — header, payload, signature — sin escribir nada de código.
Comprueba al instante si un error 401 está causado por un claim `exp` expirado o por un claim `nbf` aún no válido.
A side-by-side comparison of popular JWT decoding tools.
| Característica | NovaTools | JWT.io | JWT.ms |
|---|---|---|---|
| Privacidad (sin subida) | 100% local | Sube al servidor | Sube al servidor |
| Precio | Gratis ilimitado | Gratis con anuncios | Free |
| Estado de claim (exp/nbf/iat) | Color-coded | ||
| Pretty-printed JSON | |||
| UTF-8 safe decoding | Limitado | ||
| Mobile friendly | Limitado | Limitado | |
| Funciona sin conexión | After page load |
JWT.io and JWT.ms upload your token to their servers for decoding. Our tool decodes everything locally — your JWT never leaves your browser.
Key facts about JSON Web Tokens.
| Símbolo / Código | Descripción | Ejemplo |
|---|---|---|
header.payload.signature | Three Base64URL-encoded parts separated by dots. | eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123 |
header | JSON object with algorithm (alg) and token type (typ). | {"alg":"HS256","typ":"JWT"} |
payload | JSON object with claims about the user and token. | {"sub":"123","exp":1735689600} |
signature | HMAC/RSA/ECDSA signature. Not decoded, only verified. | HMAC-SHA256(header.payload, secret) |
header.payload.signatureThree Base64URL-encoded parts separated by dots.
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123headerJSON object with algorithm (alg) and token type (typ).
{"alg":"HS256","typ":"JWT"}payloadJSON object with claims about the user and token.
{"sub":"123","exp":1735689600}signatureHMAC/RSA/ECDSA signature. Not decoded, only verified.
HMAC-SHA256(header.payload, secret)| Símbolo / Código | Descripción | Ejemplo |
|---|---|---|
sub | Subject — identifica al usuario o entidad. | "sub":"user-123" |
iss | Issuer — identifica quién emitió el token. | "iss":"auth.example.com" |
aud | Audience — destinatario previsto del token. | "aud":"api.example.com" |
exp | Expiration time (Unix timestamp in seconds). | "exp":1735689600 |
iat | Issued at (Unix timestamp in seconds). | "iat":1735603200 |
nbf | Not before — el token no es válido antes de este tiempo. | "nbf":1735603200 |
subSubject — identifica al usuario o entidad.
"sub":"user-123"issIssuer — identifica quién emitió el token.
"iss":"auth.example.com"audAudience — destinatario previsto del token.
"aud":"api.example.com"expExpiration time (Unix timestamp in seconds).
"exp":1735689600iatIssued at (Unix timestamp in seconds).
"iat":1735603200nbfNot before — el token no es válido antes de este tiempo.
"nbf":1735603200| Símbolo / Código | Descripción | Ejemplo |
|---|---|---|
HS256 | HMAC with SHA-256. Symmetric — same secret for sign and verify. | {"alg":"HS256"} + shared secret |
RS256 | RSA signature with SHA-256. Asymmetric — private key signs, public key verifies. | {"alg":"RS256"} + RSA 2048-bit key pair |
ES256 | ECDSA with P-256 and SHA-256. Asymmetric — smaller signatures than RSA. | {"alg":"ES256"} + EC P-256 key pair |
none | Sin firma. INSEGURO — nunca usar en producción. | {"alg":"none"} — CRITICAL vulnerability |
HS256HMAC with SHA-256. Symmetric — same secret for sign and verify.
{"alg":"HS256"} + shared secretRS256RSA signature with SHA-256. Asymmetric — private key signs, public key verifies.
{"alg":"RS256"} + RSA 2048-bit key pairES256ECDSA with P-256 and SHA-256. Asymmetric — smaller signatures than RSA.
{"alg":"ES256"} + EC P-256 key pairnoneSin firma. INSEGURO — nunca usar en producción.
{"alg":"none"} — CRITICAL vulnerabilityEsta herramienta se ejecuta completamente en su navegador. Sus archivos no se suben a un servidor, no se almacenan ni se analizan.
Incluso si su conexión a internet se cae, sus archivos permanecen seguros.
Aprende a decodificar un JWT: sus tres partes (header.payload.signature), qué significan iat/nbf/exp y la diferencia entre decodificar y verificar.
Aprende qué es Base64, cuándo usar Base64 estándar o seguro para URL, y cómo codificar o decodificar texto localmente en el navegador.
Una guía completa sobre cómo crear códigos de barras y códigos QR personalizados en línea de forma gratuita. Aprende a escanear cualquier código con tu cámara o una imagen, a entender los diferentes formatos y a descubrir usos comunes para proyectos empresariales y personales.