Decodificador JWT
Pega un token JWT y lee su encabezado, su cuerpo y su firma al instante, con cada claim explicado y las fechas de vencimiento en tu hora. También puedes crear y firmar uno. Nada sale de tu navegador.
Se procesa en tu dispositivo. No se sube nada.
El token y la clave no salen de tu navegador: no se envían, no se guardan y no quedan en la dirección de la página.
Pega un token y verás su encabezado, su cuerpo y su firma al instante, con cada claim explicado.
Esto no es un JWT válido
Token por partes
Encabezado
Cuerpo
El cuerpo (payload) lleva los datos del token. Está codificado, no cifrado: cualquiera con el token puede leerlo.
Claims explicados
Firma
Verificar la firma (opcional)
Se usa tal cual, como texto. Se comprueba al escribir.
Acepta PEM («BEGIN PUBLIC KEY»), certificado X.509, JWK o un conjunto JWKS. Nunca pegues una clave privada.
¿Es seguro pegar un token aquí?
Esta página decodifica el token con JavaScript en tu navegador: no hay ningún servidor que lo reciba. Puedes comprobarlo abriendo la pestaña Red de las herramientas de desarrollo mientras pegas el token.
Aun así, no pegues tokens de producción que sigan vigentes en sitios que no puedas auditar. Un token robado se usa como una contraseña hasta que vence. Si dudas, usa un token de prueba o uno ya vencido.
Usa solo secretos y claves de prueba. Lo que escribas aquí no sale de tu navegador, no se guarda y no queda en la dirección de la página, pero no conviene pegar claves de producción en ningún sitio.
«iat» es cuándo se emitió y «exp» cuándo vence, en segundos desde 1970.
Se usa tal cual, como texto. Conviene que mida al menos tantos bytes como el hash (32 para HS256).
Acepta PEM sin contraseña («BEGIN PRIVATE KEY» o «BEGIN RSA PRIVATE KEY») o un JWK con «d». La firma se hace en tu navegador.
Token firmado
Clave pública para verificarlo
Cómo se usa
- Pega el token en el campo. Aceptamos «Bearer eyJ…», un encabezado Authorization o un JSON que lo contenga: buscamos el JWT solo.
- Mira el encabezado y el cuerpo ya decodificados, con el JSON ordenado y una tabla que explica cada claim en español.
- Revisa el estado: te decimos si el token está vigente, vencido o todavía no es válido, con la fecha en tu hora local y en UTC.
- Para comprobar la firma, escribe la clave secreta (HS256) o pega la clave pública en PEM, JWK o certificado (RS256, ES256, PS256, EdDSA).
- Para crear un token, cambia a «Crear token»: escribe el encabezado y el cuerpo, elige el algoritmo, pon la clave y copia el resultado o pulsa «Decodificar este token».
Preguntas frecuentes
¿Es seguro pegar mi token aquí?
El token se decodifica en tu navegador con JavaScript y no se envía a ningún servidor: puedes comprobarlo en la pestaña Red de las herramientas de desarrollo. Tampoco lo guardamos ni lo ponemos en la dirección de la página. Aun así, con tokens de producción que siguen vigentes conviene ser prudente: un token robado sirve como una contraseña hasta que vence.
¿Qué significa que la firma sea válida?
Significa que el token no fue modificado desde que se firmó y que la clave que escribiste es la que lo firmó. No prueba que el emisor sea de confianza, que el token siga vigente (revisa «exp») ni que esté pensado para tu servicio (revisa «aud»). Tu servidor debe comprobar todo eso.
¿Por qué puedo leer el contenido de un JWT sin ninguna clave?
Porque el encabezado y el cuerpo solo están codificados en Base64URL, no cifrados. La firma sirve para detectar cambios, no para ocultar datos. Por eso no debes guardar contraseñas ni datos sensibles dentro de un JWT. Los tokens cifrados (JWE) tienen cinco partes y sí necesitan una clave para leerse.
¿Qué es «alg: none» y por qué avisan de él?
Es un token declarado sin firma. Cualquiera puede escribir uno con el contenido que quiera, así que un servidor nunca debe aceptarlo como prueba de identidad. Algunas librerías antiguas lo aceptaban por error, y es un ataque clásico. Si ves «none» en un token real, desconfía.
¿Qué claves puedo usar para verificar la firma?
Para HS256, HS384 y HS512, la clave secreta como texto (o en Base64 si activas la opción). Para RS, PS, ES y EdDSA, la clave pública en PEM («BEGIN PUBLIC KEY»), un certificado X.509, un JWK o un conjunto JWKS (elegimos la clave con el «kid»). Para crear un token hace falta la clave privada en PEM sin contraseña o un JWK con «d»; también puedes generar un par de prueba.
¿Por qué mi token aparece como vencido si acaba de emitirse?
El campo «exp» es un número de segundos desde 1970. Si el emisor lo escribió en milisegundos o el reloj de tu dispositivo está desajustado, el estado sale mal. Te avisamos cuando un valor parece estar en milisegundos o cuando «iat» queda en el futuro.
Qué es un JWT
Un JSON Web Token son tres partes separadas por puntos: encabezado.cuerpo.firma. Las dos primeras son JSON codificado en Base64URL; la tercera es la firma que impide modificarlas sin que se note. Se usan para iniciar sesión y para autorizar llamadas a una API.
Los claims más comunes
iss: quién emitió el token.sub: a quién se refiere, normalmente un identificador de usuario.aud: para qué servicio es.exp: cuándo vence, en segundos desde 1970.nbf: desde cuándo es válido.iat: cuándo se emitió.jti: un identificador único del token.
Decodificar no es verificar
Cualquiera puede leer un JWT. Lo que importa es que tu servidor compruebe la firma con su propia clave, elija él el algoritmo esperado (nunca el que diga el token) y revise exp, nbf, iss y aud antes de confiar en el contenido.
Algoritmos de firma
HS256 usa una clave secreta compartida. RS256 y PS256 usan un par de claves RSA, y ES256 una curva elíptica: se firma con la privada y se verifica con la pública, que puede publicarse sin riesgo.
Actualizada el 29 de septiembre de 2026