Decodificador JWT: Decodifica y Verifica Tokens Sin Comprometer la Seguridad
Hablemos de los tokens JWT.
Si has trabajado con alguna aplicación web moderna en los últimos 5 años, seguro los has manejado. Flujos de autenticación, claves de API, tokens de sesión, están por todas partes.
Pero aquí está el detalle: muchos desarrolladores usan JWT sin entender realmente lo que contienen. Y peor aún, algunos pegan tokens de producción en sitios aleatorios de "depuración JWT" que podrían estar registrándolos.
En esta guía, te mostraré qué hace realmente un decodificador JWT, cómo usarlo de forma segura y la herramienta gratuita que uso personalmente y que funciona 100% en el navegador.
¿Qué contiene realmente un JWT#
Un JSON Web Token tiene tres partes, separadas por puntos:
header.payload.signature
Por ejemplo:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjMiLCJleHAiOjE2MjYxMjM0NTZ9.abc123def456...
No está cifrado. Solo está codificado en base64.
El encabezado del JWT indica qué algoritmo firmó el token (generalmente HS256 o RS256).
El payload del JWT contiene las declaraciones reales (id de usuario, tiempo de expiración, alcances, etc.).
La firma del JWT es la prueba criptográfica de que el token no ha sido alterado.
Cualquier persona con el token puede leer el encabezado y el payload. La firma es lo que está protegido.
Por qué nunca debes pegar tokens en sitios sospechosos#
Este es un aviso de seguridad.
Si pegas un JWT en una herramienta que lo envía a un servidor (en lugar de decodificarlo localmente), acabas de filtrar tu token. El operador del sitio puede:
- Robar tu sesión
- Suplantar al usuario
- Usar el token en sus propios scripts
Y muchos sitios "decodificadores de JWT" hacen exactamente esto. Envían a un backend, "decodifican" y devuelven el resultado. Su servidor ahora tiene tu token en un archivo de registro.
La solución: solo usa decodificadores de JWT que se ejecuten en el navegador. El token nunca sale de tu máquina.
El decodificador JWT gratuito que uso#
Construí Molixa JWT Decoder específicamente porque cualquier otro decodificador "gratuito" tenía anuncios o enviaba el token a un servidor.
El mío no.
Pegas un JWT. El decodificador usa JavaScript en tu navegador para dividir, decodificar en base64 y analizar el JSON. Listo.
No se activa análisis en el token. No hay viaje al servidor. No hay registro.
Paso a paso: decodifica tu primer JWT#
Así es como funciona.
Paso 1: Obtén un JWT#
Desde el almacenamiento local de tu app, las DevTools del navegador o una respuesta de API.
En Chrome DevTools, abre Application → Storage → Local Storage → busca claves como "access_token" o "jwt".
Paso 2: Abre el decodificador#
Paso 3: Pega#
Un área de texto grande en la parte superior. Pega el token completo.
Paso 4: Lee el desglose#
Verás tres paneles:
- Header, algoritmo, tipo, ID de clave
- Payload, las claims reales
- Signature, base64 (no puedes decodificarla, solo verificar)
Paso 5: Revisa las claims#
El payload es donde está la acción. Busca:
sub, sujeto (normalmente el ID de usuario)iat, emitido en (marca de tiempo)exp, expira en (marca de tiempo; conviértela a fecha)iss, emisor (qué servicio creó el token)aud, audiencia (qué servicio puede usar el token)scope, permisos otorgados
Un inspector de JWT que valga la pena convierte automáticamente las marcas de tiempo a fechas legibles.
Cómo verificar la firma de un JWT#
Decodificar muestra el contenido. La verificación demuestra que el token es legítimo.
Para HS256 (simétrico)#
Necesitas el secreto compartido. Pégalo en el panel de verificación. El decodificador aplica hash al encabezado + carga útil con HMAC-SHA256, lo compara con la firma y te indica "válido" o "inválido".
No almacenes el secreto en ningún lugar persistente. Es un secreto por una razón.
Para RS256 (asimétrico)#
Necesitas la clave pública (formato PEM). Pégalo. El decodificador verifica la firma usando la clave pública.
Las claves públicas son seguras de compartir, ese es el objetivo.
Errores comunes con JWT#
Algunos que veo todo el tiempo:
Error 1: Almacenar JWTs en localStorage. Vulnerable a XSS. Usa cookies httpOnly para tokens de sesión.
Error 2: Confiar en el contenido decodificado. El payload es solo base64. Cualquiera puede cambiarlo. Siempre verifica la firma en el servidor.
Error 3: Tiempos de expiración largos. Los tokens con exp de 30+ días son riesgosos. Usa tokens de actualización para sesiones largas y tokens de acceso de corta duración.
Error 4: Poner datos sensibles en el payload. El payload es legible para cualquiera que tenga el token. No pongas números de tarjeta de crédito, nombres completos ni nada que no quieras que se registre.
Error 5: Pegar tokens de producción en herramientas que envían a un servidor. Ver arriba. Usa decodificadores solo en el navegador.
Ejemplo real: depuración de un error 401#
La semana pasada, mi API seguía devolviendo 401 para un usuario. Juraban que su token era válido.
Les pedí que pegaran el token en Molixa JWT Decoder.
Su payload mostraba exp: 1715342400. Lo convertí: eso fue hace 3 horas.
Su token había expirado. El flujo de renovación falló silenciosamente.
Tiempo total de depuración: 90 segundos.
¿Qué pasa con jwt.io?#
El decodificador JWT en línea más famoso.
Ventajas: Estándar de la industria. Confiable para muchos. Desventajas: Tiene anuncios. La interfaz no se ha actualizado en años. Envía algunos análisis sobre el uso del token (no el token en sí, pero suficiente para conocer patrones).
Molixa JWT Decoder es una alternativa limpia y rápida para el uso diario.
Para la experiencia oficial de jwt.io, ve a jwt.io. Para decodificar a diario sin anuncios, el mío funciona.
Consejos profesionales#
Algunos hábitos que vale la pena adquirir:
Consejo 1: Usa la función de conversión de marcas de tiempo. Los JWT usan épocas Unix; conviértelos a fechas legibles.
Consejo 2: Marca el decodificador como favorito. Lo usarás más de lo que esperas.
Consejo 3: Siempre verifica iss y aud. Si no coinciden con lo que espera tu servicio, el token no es para ti, recházalo.
Consejo 4: Mantén los secretos de producción fuera de los paneles de "verificación". Usa una herramienta CLI local (como el jose-cli oficial) para flujos de verificación en producción.
Consejo 5: Para depurar tokens de aplicaciones móviles, cópialos mediante Charles Proxy o Proxyman, luego decodifícalos en el navegador.
Alternativas modernas a JWT#
Algunas notas para contexto:
PASETO, diseñado para solucionar los problemas de diseño de JWT. Mejores valores predeterminados, sin ataques de confusión de algoritmo.
Branca, tokens pequeños y firmados. Menos común, pero más simple.
Tokens opacos, cadenas aleatorias que se asignan a sesiones del lado del servidor. Algunos equipos están volviendo a estos por razones de seguridad.
Sin embargo, JWT sigue siendo dominante. Saber decodificar y verificar es fundamental.
Resumen#
Los tokens JWT no dan miedo una vez que entiendes su estructura.
Encabezado. Carga útil. Firma.
Un buen decodificador JWT gratuito te muestra los tres, convierte las marcas de tiempo y nunca envía el token a un servidor.
Molixa JWT Decoder cumple con todos los requisitos.
Guárdalo en favoritos. Úsalo. Deja de pegar tokens en sitios aleatorios.
Mantente seguro ahí fuera.



