Saltar al contenido

Decodificador de JWT

Decodifica un JSON Web Token en su encabezado, carga útil y claims, verifica si está vencido y opcionalmente valida una firma HS256, HS384 o HS512.

Tres partes en base64url separadas por puntos: encabezado.carga útil.firma.

 

Cómo funciona

Esta herramienta es un decodificador de JWT del lado del cliente que divide un token en sus partes de encabezado, carga útil y firma, decodifica en base64url el encabezado y la carga útil, y muestra claims registrados como exp, iat y sub con marcas de tiempo legibles y un indicador de vencido o válido según la hora actual.

  1. Pega el token

    La cadena de tres partes separadas por puntos.

  2. Lee los claims

    Los claims estándar están etiquetados, con las marcas de tiempo convertidas a una fecha legible.

  3. Verifica la firma, opcionalmente

    Para tokens HS256, HS384 o HS512, pega el secreto para comprobarlo.

Decodificar no es verificar

Un JWT tiene tres partes unidas por puntos: un encabezado que describe el algoritmo de firma, una carga útil de claims y una firma. El encabezado y la carga útil solo están codificados en base64url, no cifrados, por lo que cualquiera puede decodificarlos y leerlos sin una clave, que es exactamente lo que hace esta herramienta. La firma es lo que realmente prueba que el token fue emitido por quien posee el secreto o la clave privada, y comprobarla es una operación distinta a la decodificación.

  • Claims registrados: exp (vencimiento), iat (emitido en), nbf (no antes de), sub (sujeto), iss (emisor), aud (audiencia) y jti (ID del token) se reconocen y etiquetan; exp, iat y nbf también se muestran como una fecha legible.
  • Verificación de vencimiento: compara el claim exp, si está presente, con la hora actual de tu dispositivo.
  • Verificación de firma: para tokens HS256, HS384 y HS512, al ingresar el secreto compartido se recalcula el HMAC en tu navegador mediante Web Crypto API y se compara con la firma del token. Los algoritmos RS256, ES256 y otros de clave pública requieren la clave pública del emisor en lugar de un secreto compartido, lo cual esta herramienta no acepta, por lo que indica que el algoritmo no es compatible para verificación aquí.

No confíes en un token decodificado que no hayas verificado

Cualquiera puede crear un JWT con cualquier claim y una firma inválida, ya que la decodificación nunca la verifica. Nunca tomes una decisión de autorización basándote solo en un payload decodificado; verifica primero la firma, normalmente en tu servidor con la misma biblioteca que emitió el token. Todo en esta página se ejecuta en tu navegador: el token y cualquier secreto que ingreses para verificarlo nunca se envían a ningún lado.

Preguntas frecuentes

¿Cómo decodifico un token JWT para ver su payload?

Pega el JWT completo, la cadena de tres partes separadas por puntos, en el campo de entrada. La herramienta la divide en los puntos, decodifica en base64url los segmentos de encabezado y carga útil, y muestra cada reclamo en una tabla estructurada. Los reclamos estándar como exp (vencimiento), iat (emitido en) y sub (sujeto) se etiquetan y se convierten a fechas legibles.

¿Decodificar un JWT verifica su firma?

No, decodificar y verificar son dos operaciones distintas. Decodificar lee el encabezado y la carga útil sin comprobar la firma criptográfica. Un JWT decodificado que parezca válido aún podría estar falsificado. Esta herramienta también puede verificar una firma HS256, HS384 o HS512 si proporcionas el secreto compartido, pero RS256, ES256 y otros algoritmos de clave pública aún necesitan verificarse en tu servidor, donde está disponible la clave pública correspondiente a la clave privada.

¿Es seguro pegar un JWT de producción en este decodificador?

El decodificador se ejecuta completamente en tu navegador; el token y cualquier secreto que ingreses para verificarlo nunca se envían a ningún servidor. Como buena práctica, evita pegar tokens activos que concedan acceso sensible en cualquier lugar. Si necesitas depurar un token de producción, usa una copia de prueba o un token con una ventana de vencimiento corta.

¿Cómo puedo saber si un JWT está vencido con esta herramienta?

Después de decodificar, busca el claim exp en la sección del payload. La herramienta convierte la marca de tiempo Unix a una fecha legible y muestra una etiqueta de vencido o válido según la hora actual de tu dispositivo. Si la hora actual supera el valor de exp, el token está vencido y será rechazado por cualquier servidor implementado correctamente.

¿Qué algoritmos JWT admite este decodificador?

La decodificación funciona con un token firmado con cualquier algoritmo (HS256, RS256, ES256, etc.), ya que leer el encabezado y el payload solo implica decodificar base64url, lo cual es independiente del algoritmo. La verificación de firma en esta herramienta se limita a los algoritmos simétricos HS256, HS384 y HS512; los tokens RS y ES aparecen como no admitidos para verificación aquí porque requieren una clave pública en lugar de un secreto compartido.