utilduck
Home · Desarrollador · Decodificador JWT

Decodificador JWT

Pega un JSON Web Token abajo para decodificar su encabezado y payload.

Esta herramienta solo decodifica el encabezado y el payload de un JWT — no verifica la firma. Un token decodificado igual puede estar expirado, alterado o no ser válido. Nunca confíes en el contenido de un JWT sin verificarlo en el servidor.

Procesamiento 100% local — el token se decodifica por completo en tu navegador y nunca se envía a ningún sitio.

-
-
Emitido en (iat)-
Expira en (exp)-

Sobre JWT (JSON Web Token)

Un JWT es un token compacto y seguro para URL formado por tres partes codificadas en base64url separadas por puntos: un encabezado que describe el algoritmo de firma, un payload con claims (datos) y una firma que verifica que el token no fue alterado. Esta herramienta decodifica el encabezado y el payload de vuelta a JSON legible.

Como el encabezado y el payload solo están codificados en base64url, no cifrados, cualquiera puede decodificarlos y leerlos sin una clave secreta — así está diseñado. La firma de un JWT protege contra la alteración, no contra que el contenido sea legible, por lo que un decodificador por sí solo nunca puede confirmar que un token sea realmente válido.

¿Cómo decodifico un JWT y qué significan exp/iat?

Un JWT (JSON Web Token) son tres partes codificadas en base64url unidas por puntos: header.payload.signature. Para leerlo, divide la cadena por los puntos, decodifica en base64url el encabezado y el payload, y analiza cada uno como JSON; no hace falta ninguna clave secreta para decodificar, solo para verificar la firma. Las reclamaciones iat (emitido en) y exp (expiración) del payload son marcas de tiempo Unix (segundos desde el 1970-01-01), que esta herramienta convierte en una fecha legible.

Pasos para decodificar un JWT

  1. Pega la cadena JWT completa (las tres partes separadas por puntos) en el cuadro de entrada.
  2. La herramienta divide el token por sus puntos y decodifica en base64url la primera parte (encabezado) y la segunda (payload).
  3. Cada parte decodificada se analiza como JSON y se formatea para facilitar su lectura.
  4. Si el payload contiene las reclamaciones iat o exp, se convierten de marcas de tiempo Unix a una fecha y hora local legibles.
  5. La tercera parte (firma) se deja tal cual y nunca se decodifica ni se comprueba, ya que verificarla requiere la clave secreta o pública del emisor, que esta herramienta no tiene.

Estructura del JWT y conversión de marcas de tiempo

JWT = base64url(header) + "." + base64url(payload) + "." + firma · Fecha legible = new Date(segundos_de_exp_o_iat x 1000)
  • iat (issued at) = la marca de tiempo Unix, en segundos, de cuándo se creó el token
  • exp (expiration) = la marca de tiempo Unix, en segundos, a partir de la cual el token debe considerarse caducado
  • base64url = una variante de la codificación base64 segura para URL que sustituye + y / por - y _ y omite el relleno

Reclamaciones habituales del payload de un JWT

ReclamaciónSignificado
issIssuer — quién creó y firmó el token
subSubject — la identidad de la que trata el token, como un ID de usuario
audAudience — el destinatario previsto del token
iatIssued at — cuándo se creó el token (marca de tiempo Unix)
expExpiration — cuándo deja de ser válido el token (marca de tiempo Unix)

Preguntas frecuentes

¿Decodificar un JWT demuestra que es válido o fiable?

No. Decodificar solo revela lo que hay dentro del encabezado y el payload; no dice nada sobre si la firma es genuina, si el token fue emitido por una fuente de confianza o si ha sido manipulado. Solo verificar la firma con la clave secreta o pública correcta puede confirmar que un token es auténtico.

¿Por qué cualquiera puede leer el payload de mi JWT sin contraseña?

El encabezado y el payload están codificados en base64url, no cifrados, así que decodificarlos es solo una transformación de texto reversible, no una barrera de seguridad; esto es intencional, ya que los JWT están pensados para que los lea cualquier parte que los reciba. Por eso los datos sensibles nunca deben colocarse en el payload de un JWT.

¿Qué pasa si la marca de tiempo exp de un token está en el pasado?

Los sistemas que comprueban un JWT con un valor exp en el pasado suelen considerarlo caducado y deberían rechazarlo, pero este decodificador solo muestra la fecha: no la compara con la hora actual ni rechaza nada, ya que esa comprobación es responsabilidad del servidor.

¿Por qué mi token decodificado muestra un error?

Un error suele significar que el texto pegado no es un JWT completo y bien formado; por ejemplo, le falta un segmento separado por puntos, el encabezado o el payload no son base64url válido, o el texto decodificado no es JSON válido. Comprueba que copiaste el token completo sin espacios ni saltos de línea adicionales.

Esta herramienta solo decodifica y muestra el encabezado y el payload; nunca verifica la firma, compara la expiración con la hora actual ni valida ninguna reclamación, así que un token decodificado con éxito no es lo mismo que un token verificado y fiable.

Sources: RFC 7519 (JSON Web Token)

Privacidad y seguridad

  • Se calcula en el navegador — Lo que escribe se calcula solo en su dispositivo y nunca se envía a un servidor de utilduck.
  • Conexión cifrada — Todas las páginas se sirven por HTTPS, por lo que nadie en la red puede leer su contenido.
  • No se comparte con terceros — Sus datos no se transmiten a servicios de analítica ni de publicidad.
  • No se almacena — Los resultados no se guardan en ningún servidor y no hace falta crear una cuenta.

Última actualización: 2026-08-17