Asistente RD

Decodificador de JWT

Decodifica cualquier JWT en tu navegador: ve el header y el payload en JSON, con fechas legibles de exp e iat y aviso si está expirado. Sin registro.

Gratis · Sin registro · En tu navegador

Expirado

Payload (datos)

{
  "sub": "1234567890",
  "name": "Ada Lovelace",
  "iat": 1516239022,
  "exp": 1516242622
}

Header (encabezado)

{
  "alg": "HS256",
  "typ": "JWT"
}

Fechas del token

CampoSignificadoFecha
iatEmitido (iat)17 ene 2018, 9:30:22 p. m.
expExpira (exp)17 ene 2018, 10:30:22 p. m.

Firma (signature)

SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

No verificamos la firma: decodificar no es lo mismo que verificar. Para validar la firma necesitas la clave secreta.

Base64 no cifra: cualquiera con el token puede leer estos datos. Nunca guardes contraseñas ni secretos en el payload.

Tu token se decodifica en tu navegador. No se envía a ningún servidor, así que puedes usarlo con datos sensibles sin que salgan de tu dispositivo.

Compartir por WhatsApp Última revisión: 8 de julio de 2026

Qué es un JWT

Un JWT (JSON Web Token) es un formato compacto para transmitir información entre dos partes de forma que pueda comprobarse su autenticidad. Se usa muchísimo en autenticación: cuando inicias sesión en una aplicación, el servidor suele devolverte un JWT que tu navegador guarda y reenvía en cada petición para demostrar quién eres.

Un JWT tiene tres partes separadas por puntos: header.payload.signature. Cada parte es texto codificado en Base64url (una variante de Base64 apta para URLs). Este decodificador divide el token por los puntos, decodifica el header y el payload, y te los muestra como JSON legible, todo dentro de tu navegador.

Cómo usar el decodificador

  1. Copia el JWT completo desde tu aplicación, la consola del navegador o una cabecera Authorization.
  2. Pégalo en el campo de arriba. La decodificación es instantánea.
  3. Revisa el payload (los datos) y el header en formato JSON.
  4. Si el token trae fechas (iat, exp, nbf), verás cada una convertida a una fecha legible y un distintivo que indica si el token está vigente o expirado.
  5. Usa el botón Copiar para llevarte el JSON del payload o del header.

Las tres partes de un JWT

  • Header: indica el algoritmo de firma (alg, por ejemplo HS256) y el tipo (typ, normalmente JWT).
  • Payload: contiene los claims, es decir, los datos. Algunos son estándar (sub, iat, exp, nbf, iss, aud) y otros los define tu aplicación.
  • Signature: es el resultado de firmar el header y el payload con una clave. Sirve para comprobar que nadie alteró el token, pero no se lee como los otros dos: para validarla necesitas la clave.

Los campos de tiempo se guardan como epoch (segundos desde el 1 de enero de 1970 UTC). Para obtener la fecha real se multiplican por 1000 y se convierten a un objeto de fecha.

Ejemplo resuelto

Tomemos este token de muestra:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE2MjQyNjIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

El header decodificado es:

{ "alg": "HS256", "typ": "JWT" }

Y el payload:

{ "sub": "1234567890", "name": "Ada Lovelace", "iat": 1516239022, "exp": 1516242622 }

El campo iat vale 1516239022; al multiplicarlo por 1000 y convertirlo obtenemos el 18 de enero de 2018, 01:30:22 UTC. El exp vale 1516242622, exactamente 3600 segundos (una hora) después: el 18 de enero de 2018, 02:30:22 UTC. Como esa fecha ya pasó, el decodificador marca el token como expirado.

Tabla de claims habituales

ClaimSignificadoEjemplo
issEmisor del tokenmi-servidor
subSujeto (usuario)1234567890
iatEmitido en (epoch)1516239022
expExpira en (epoch)1516242622
nbfVálido desde (epoch)1516239022

Preguntas frecuentes

¿Es seguro pegar mi token aquí?

Sí. Todo el proceso ocurre en tu navegador con JavaScript; el token nunca se envía a ningún servidor. Aun así, evita compartir tokens de producción activos en herramientas públicas o capturas de pantalla: mientras no expiren, dan acceso a tu cuenta.

¿Por qué veo mis datos sin tener la clave?

Porque Base64url no es cifrado, solo una forma de representar texto. Cualquiera que tenga el token puede leer el header y el payload. Por eso nunca debes poner contraseñas ni secretos dentro de un JWT: ponerlos ahí es como escribirlos en una postal.

¿Cómo verifico la firma?

La verificación necesita la clave secreta (en HS256) o la clave pública (en RS256) que usó el emisor, y se hace en el servidor con una librería de JWT. Este decodificador solo lee el contenido: decodificar y verificar son cosas distintas.

¿Qué diferencia hay entre decodificar y verificar?

Decodificar es traducir el Base64url a JSON para leerlo. Verificar es comprobar, con la clave, que la firma es válida y que el token no fue alterado ni ha expirado. Confiar en un token sin verificar la firma es un error de seguridad.

Herramientas relacionadas