Decodificador JWT
Decodifica header y payload de un JWT de forma local.
Sobre esta herramienta
Un JSON Web Token (RFC 7519) son tres segmentos codificados en Base64url unidos por puntos: header, payload y signature. JWT Decoder divide el token, decodifica los dos primeros segmentos a JSON, los formatea y calcula los claims relacionados con el tiempo (iat, exp, nbf) como timestamps legibles. Los claims registrados estándar (iss, sub, aud, jti) se etiquetan con su significado. La decodificación corre íntegramente en su navegador — su token nunca sale de la página.
El header le dice el algoritmo de firma (alg: HS256, RS256, ES256, etc.) y el kid opcional (key ID). El payload contiene los claims de la aplicación — id de usuario, roles, expiración. La firma se muestra como un blob Base64; deliberadamente no la verificamos en esta página porque verificar requiere el secreto o la clave pública del emisor, que nunca debería pegarse en una herramienta de terceros. El token se trata solo como datos.
Cuándo utilizar esta herramienta
- Leer un token de su propio servicio. Inspeccione qué claims emite realmente — detecte rápidamente campos faltantes, audiencias incorrectas o valores por defecto sorprendentes.
- Depurar respuestas «401 Unauthorized». Compruebe expiración, emisor, audiencia y scope contra lo que espera el servidor.
- Verificar una integración de terceros. Cuando un proveedor OAuth le entrega un ID token, decodifique el payload para ver qué claims de usuario incluye.
- Detectar confusión de algoritmo. Si
algesnoneo difiere inesperadamente entre tokens, su biblioteca de auth probablemente está mal configurada.
Por qué no validamos firmas
La verificación de firma JWT requiere el secreto (para algoritmos HMAC) o la clave pública del emisor (para RSA/ECDSA). Pegar cualquiera de los dos en una herramienta web es un error de seguridad — el secreto comprometería todos los tokens emitidos; la clave pública, aunque menos sensible, aún puede ser privada. El decoder confirma la estructura y revela los claims; para verificación real, use el SDK que viene con su biblioteca de auth (jsonwebtoken, pyjwt, jose) dentro de su propio código.
Preguntas frecuentes
¿Es seguro pegar mi JWT aquí?
¿Por qué se muestra la firma pero no se verifica?
¿Qué significa «alg: none»?
alg: none existe en la especificación pero nunca debería aparecer en producción — es la causa raíz de la famosa vulnerabilidad «JWT none-algorithm» en la que una biblioteca acepta none como válido. Si lo ve en un token real de un servicio real, es un bug serio.
¿Cuál es la diferencia entre exp, iat y nbf?
iat (issued-at) es cuándo se creó el token. nbf (not-before) es la fecha más temprana en la que se puede usar el token — normalmente igual a iat pero puede estar en el futuro para activación retardada. exp (expiration) es cuándo el token deja de ser válido. Los tres son timestamps Unix en segundos. Un verificador correcto comprueba nbf ≤ ahora ≤ exp en cada petición.