Decodificador JWT

Pega el token y revisa cabecera y payload en JSON. La firma no se verifica aquí.

{{ jwt.message }}

Descripción

El JWT llegó como respuesta a un problema real que el crecimiento de las SPAs y los microservicios creó a principios de los años 2010. Antes de él, el modelo estándar de autenticación en la web se basaba en sesiones del lado del servidor: el servidor guarda un registro de quién está conectado en memoria, base de datos o Redis, y el navegador recibe una cookie con el ID de sesión. Esto funciona bien con un único servidor, pero en arquitecturas distribuidas con múltiples instancias necesitas sesiones compartidas, sticky sessions o una caché centralizada. Mike Jones, John Bradley y Nat Sakimura formalizaron el JWT en el RFC 7519 en 2015, aunque el concepto circulaba desde 2010 en el contexto de OAuth 2.0 — el protocolo de autorización que Google, Facebook y Twitter usaban para permitir el inicio de sesión en sitios de terceros.

La estructura de un JWT son tres partes separadas por punto, cada una en Base64URL: cabecera, payload y firma. La cabecera declara el algoritmo — HS256 usa HMAC con SHA-256 y clave simétrica compartida; RS256 usa RSA con SHA-256 y par de claves asimétrico. El payload lleva los claims estándar: sub para el ID del usuario, exp para el timestamp de expiración, iat para la emisión e iss para el emissor. La firma garantiza que el token no fue alterado, pero no cifra el payload — cualquiera puede decodificar un JWT en Base64, simplemente no puede crear un token válido sin la clave. Una vulnerabilidad históricamente conocida: algunas bibliotecas aceptaban tokens con el algoritmo declarado como none, omitiendo por completo la verificación de firma.

El debate sobre usar JWT para autenticación de aplicaciones web es más rico de lo que parece. La ventaja principal es la naturaleza stateless: el servidor no necesita consultar la base de datos en cada petición, lo que es genuinamente útil en microservicios donde docenas de servicios necesitan verificar la autenticación. El problema central es que no puedes invalidar un token antes de que expire — si un usuario cierra sesión o es comprometido, el token sigue siendo válido hasta exp. La solución habitual, una lista negra de tokens revocados en Redis, reconstruye exactamente el estado centralizado que intentabas evitar. Para aplicaciones web tradicionales con un único servidor, los tokens opacos con sesiones del lado del servidor suelen ser la opción más simple y segura. El JWT brilla en OAuth y OIDC para el inicio de sesión federado y en tokens de corta duración entre microservicios.

Detalle técnico

Ideas claras antes de usar la herramienta

  • ¿Para qué sirve esta herramienta?: Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.
  • ¿Se envían mis datos a algún servidor?: El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.
  • ¿Puedo usarlo con datos reales en producción?: Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.

Fragmento corto para probar

  • Debajo aparece también el ejemplo largo en "Fragmentos de Código"; pega esta versión corta: Estructura — header.payload.signature (Base64URL)

Guía de la herramienta

  • Qué es un JWT JSON Web Token: tres partes Base64URL (cabecera, payload, firma), usado en autenticación sin estado. El payload lleva claims (sub, exp, etc.), a menudo solo Base64, sin cifrado.

  • Qué hace la herramienta Decodifica cabecera y payload a JSON legible. No verifica la firma ni confía en el emisor.

  • Por qué usarla Depurar caducidad (exp), ámbitos y claims en desarrollo. No pegues tokens de producción en sitios que no confíes.

Fragmentos de Código

Ejemplo de código
header.payload.signature (Base64URL)

Estructura

header.payload.signature (Base64URL)

Preguntas frecuentes

¿Para qué sirve esta herramienta?

Funciona por completo en tu navegador: sirve para validar, formatear o convertir datos en el día a día.

¿Se envían mis datos a algún servidor?

El procesamiento es local con JavaScript. No almacenamos lo que pegas en los campos de texto.

¿Puedo usarlo con datos reales en producción?

Úsalo bajo tu responsabilidad. Para secretos (contraseñas, tokens), prefiere entornos controlados y políticas internas. Recuerda de revisar los contenidos generados. Nunca confies ciegamente en cosas que ves en internet.