JWT Decoder

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JWT Decoder

Descodifica la cabecera y el payload de un JSON Web Token para que pueda leer sus claims, su algoritmo y su caducidad.

How it works

Un JWT son tres segmentos Base64URL unidos por puntos: cabecera, payload y firma. Los dos primeros están codificados, no cifrados, y por eso leerlos no requiere clave alguna: esta herramienta los descodifica de Base64URL, analiza el JSON y compara el claim exp con la hora actual para señalar la caducidad. El segmento de firma se muestra literalmente y nunca se contrasta con nada, así que lo que pegue no se envía a ninguna parte y no hace falta ningún secreto.

When to use it

  • Leer sub, scope, aud e iss de un bearer token que una API rechaza con un 401 o un 403.
  • Distinguir un token caducado de otro al que simplemente le falta un claim que su servicio exige.
  • Comprobar qué alg y qué kid usó un proveedor de identidad, antes de montar la verificación contra su JWKS.
  • Confirmar que un flujo de inicio de sesión emitió los claims que leen realmente sus reglas de autorización.
  • Inspeccionar un token capturado en la pestaña de red del navegador mientras se rastrea un fallo de permisos.

Watch out for

  • Descodificar no es verificar, y un token descodificado no es un token confiable. Cualquiera puede editar un payload, volver a codificarlo y producir algo que aquí se descodifica a la perfección. Solo comprobar la firma frente a la clave del emisor hace que un claim merezca que se actúe sobre él.
  • Nunca deje que un servidor confíe en el campo alg del token. Elegir el algoritmo de verificación a partir de la cabecera es lo que hace posible el ataque alg: none y la degradación de RS256 a HS256, en la que un atacante firma usando la clave pública como secreto HMAC. Fije el algoritmo y la clave esperados en su código de verificación.
  • El payload es legible para todo el que posea el token, incluido el usuario final. Firmar protege un claim frente a su alteración; no hace nada por ocultarlo. Mantenga fuera de él los secretos, los identificadores internos y los datos personales.
  • exp, iat y nbf son segundos desde el epoch, no milisegundos. Un valor de Date.now() de JavaScript en exp sitúa la caducidad decenas de miles de años en el futuro, y todo verificador conforme lo aceptará.

Not the right tool for: Decidir si una petición está autorizada. Eso exige verificar la firma y los claims en el servidor frente a la clave del emisor; esto es una ayuda de depuración para leer lo que dice un token.

Frequently Asked Questions

¿Descodificar un JWT es lo mismo que verificarlo?

No. Descodificar lee el contenido codificado en Base64URL. Verificar comprueba la firma frente a una clave secreta. Cualquier JWT puede descodificarse sin la clave, pero en producción siempre hay que verificarlo.

¿Qué contiene el payload de un JWT?

Los claims habituales del payload son sub (sujeto o ID de usuario), iat (emitido en), exp (fecha de caducidad), aud (audiencia) e iss (emisor). Los claims personalizados pueden ser cualquier cosa.

¿Qué significa el claim exp?

El claim exp es una marca de tiempo Unix que indica cuándo caduca el token. Esta herramienta muestra si el token es válido ahora mismo o ya ha caducado según exp.

How to Use JWT Decoder

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.