Decodificador de JWT
Inspecciona el header y el payload de un JSON Web Token. La verificación no se hace a propósito — esta herramienta es solo para depurar.
¿Qué es un JWT?
Un JSON Web Token (JWT, se pronuncia "yot") es una forma compacta y apta para URLs de transportar JSON firmado entre partes — habitualmente entre un servidor de autenticación y tu aplicación. Un JWT tiene tres partes en base64url separadas por puntos: header.payload.firma. El header indica qué algoritmo de firma se usó; el payload es un JSON con claims (sujeto, caducidad, datos personalizados); la firma permite al receptor comprobar que el token no se manipuló. El estándar está en la RFC 7519.
Cómo usarla
Pega un JWT en el cuadro de arriba. La herramienta separa por los puntos, decodifica los dos primeros segmentos en base64url y formatea el JSON resultante en dos paneles — Header y Payload. El tercer panel muestra la firma en bruto. Si el payload tiene iat, nbf o exp, también se muestran como timestamps UTC legibles indicando si el token ha caducado. La decodificación es en vivo: en cuanto terminas de escribir, los paneles se actualizan.
Decodificado ≠ verificado
Un decodificador de JWT es una ayuda de depuración, no una herramienta de seguridad. Cualquiera puede decodificar un JWT — la codificación es reversible por diseño. Lo que hace fiable al token es la firma, y verificar la firma requiere el secreto del emisor (HS256) o su clave pública (RS256, ES256). Nunca confíes en el contenido de un JWT en código de producción sin verificar antes su firma. Usa la biblioteca de JWT que viene con tu framework; nunca la implementes desde cero.
Claims estándar de JWT
| Claim | Nombre | Significado |
|---|---|---|
iss | Emisor | Identifica quién emitió el token (p. ej. la URL del servidor de auth). |
sub | Sujeto | Identifica al sujeto al que se refiere el token — normalmente un ID de usuario. |
aud | Audiencia | A quién va dirigido el token. Los receptores deben rechazar tokens que no son para ellos. |
exp | Caducidad | Timestamp Unix tras el cual el token no debe aceptarse. |
nbf | No antes | Timestamp Unix antes del cual el token no se puede aceptar. |
iat | Emitido en | Timestamp Unix en el que se emitió el token. |
jti | ID del JWT | Identificador único del token, útil para listas de revocación. |
Preguntas frecuentes
¿Mi JWT se envía a algún sitio?
¿Por qué esta herramienta no verifica la firma?
jwt para verificar firmas en un entorno controlado.Sale "No es un JWT" — ¿qué pasa?
Bearer arrastrado de un header HTTP (quítalo), solo se pegó el payload (necesitas también header y firma), o el token es en realidad un JWE (cifrado) que tiene cinco segmentos y no se puede decodificar sin la clave privada del destinatario.¿Por qué el payload es base64url y no base64 normal?
+, / y el relleno = — ninguno de los tres es seguro en URL. Base64url sustituye + por -, / por _ y elimina el relleno. Así el resultado puede ir en una URL o cabecera HTTP sin más escape. Este decodificador convierte de vuelta a base64 estándar antes de llamar a atob del navegador.¿Qué significa alg: none?
alg: none existe en la especificación pero es peligroso en la práctica: hay una clase famosa de vulnerabilidades que explotaba librerías que aceptaban tokens con alg: none como si estuvieran firmados. Si lo ves en un token de producción, considéralo un hallazgo serio.
EN
PT
ES