Ayuda

Decodificar JWT: encabezado, payload y caducidad de un token

Este decodificador JWT online separa un JSON Web Token en encabezado y payload y muestra ambos como JSON con sangría en cuanto lo pegas. Las marcas de tiempo, como exp, llevan al lado una fecha local legible, y un indicador te dice si el token ha caducado. Comprobar la firma es opcional. El token se lee en tu navegador y no se sube a ningún servidor.


Decodificar JWT online, paso a paso

  1. Pega el token en el campo JSON Web Token. El encabezado y el payload aparecen al momento: no hay ningún botón de decodificar.
  2. Mira los indicadores de estado sobre el resultado: si el token ha caducado, si aún no es válido o si no tiene caducidad, y cómo está su firma.
  3. Con Copiar encabezado o Copiar payload copias ese bloque como JSON sin formato. Las notas de fecha no van incluidas en la copia.
  4. Con Borrar vacías el campo para empezar con otro token.

Puedes pegar el token tal como te llegó: se quitan un «Authorization: Bearer» inicial, las comillas alrededor y los saltos de línea, así que sirve copiar desde la cabecera de una petición, una línea de log o una respuesta JSON. El campo admite hasta 100.000 caracteres. Los números grandes y el texto en otros idiomas se muestran tal cual en los claims, y los valores largos se ajustan en varias líneas.

Qué contienen el encabezado y el payload

Un JWT son tres partes en base64url unidas por puntos: header.payload.firma. Las dos primeras son JSON codificado y nada más, por eso un JWT se puede decodificar sin ningún secreto. Estos son los claims más habituales:

El encabezado suele traer alg (el algoritmo de firma), typ y, a veces, kid, el identificador de la clave que firmó.

Cuándo caduca un JWT: la fecha de exp

exp, iat, nbf y auth_time son marcas de tiempo Unix en segundos. La herramienta escribe cada una como fecha y hora locales junto al número, para que puedas leerla sin convertirla. Los indicadores sobre el resultado usan el reloj de tu dispositivo:

Validar token JWT: comprueba la firma

Decodificar muestra lo que dice un token; solo la firma demuestra que no se modificó. Bajo el resultado está Verificar la firma (opcional). Deja Algoritmo en la detección automática, que lee alg del token, o elige uno tú: HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 o EdDSA. Después pega una clave en Secreto o clave pública:

El indicador cambia a Firma válida o Firma no válida. Sin clave se queda en Firma sin verificar. Un token que dice alg none muestra Sin firma: este token no está firmado. Si pegas una clave privada, la herramienta la rechaza y te pide la pública, que es lo único que hace falta para verificar. La comprobación usa la WebCrypto de tu navegador; EdDSA necesita un navegador reciente.

Si el token no se decodifica

El error aparece bajo el campo y señala la parte que falla:

¿Es seguro pegar un token aquí?

El token y cualquier clave se decodifican y se comprueban en tu dispositivo. No se sube nada, no se guarda nada y no hace falta cuenta. Aun así, un token de acceso activo es una credencial, así que usa tokens caducados o de prueba cuando puedas.

Esta herramienta solo lee y comprueba tokens. No crea ni firma un JWT, y no descifra un JWE.


Preguntas frecuentes

¿Se puede decodificar un JWT sin el secreto?

Sí. El encabezado y el payload de un JWT solo están codificados en base64url, no cifrados, así que los puede leer cualquiera que tenga el token. Pégalo en el campo «JSON Web Token» y ambos aparecen a la vez. El secreto o la clave pública solo hacen falta para comprobar la firma, que aquí es opcional.

¿Cómo saber si un JWT ha caducado?

Pega el token y lee el indicador sobre el resultado. Dice hace cuánto caducó o cuánto tiempo le queda, a partir del claim exp. Un token sin claim exp muestra «Sin caducidad: el token no tiene el claim exp», y si nbf sigue en el futuro, el indicador avisa de que aún no es válido.

¿Cómo convertir el valor exp de un JWT en una fecha?

No hace falta convertirlo. exp es una marca de tiempo Unix en segundos, y la herramienta escribe la fecha y hora locales correspondientes junto a ella, en el bloque «Payload». Lo mismo ocurre con iat, nbf y auth_time.

¿Cómo verificar la firma de un JWT con una clave pública?

En «Verificar la firma (opcional)», deja «Algoritmo» en la detección automática o elige el que use el token, y pega la clave pública en «Secreto o clave pública». Sirven una clave PEM (-----BEGIN PUBLIC KEY-----), una RSA PUBLIC KEY, un certificado X.509, un JWK o un JWKS. Después el indicador cambia a «Firma válida» o «Firma no válida».

¿Puedo decodificar un token JWT en local, sin enviarlo a un servidor?

Sí, así funciona esta herramienta. El token se separa, se decodifica y se comprueba en tu navegador, y no se sube ni se guarda nada. Las comprobaciones de firma usan la WebCrypto del navegador, de modo que ni el token ni la clave se envían a ninguna parte.

¿Qué hay en el encabezado y el payload de un JWT?

El encabezado describe el token: normalmente su algoritmo de firma (alg), su tipo (typ) y, a veces, un identificador de clave (kid). El payload contiene los claims, como quién lo emitió (iss), de quién trata (sub), para quién es (aud) y cuándo caduca (exp). Ambos son JSON sin formato y se ven en los bloques «Encabezado» y «Payload».

¿Qué significa alg none en un JWT?

Significa que el token se declara sin firmar: la parte de la firma está vacía y no hay nada que comprobar. La herramienta muestra «Sin firma: este token no está firmado». Un servidor nunca debería aceptar un token así como prueba de identidad.

¿Cómo decodificar un bearer token?

Si es un JWT, pégalo tal cual. Se quitan por ti un «Authorization: Bearer» inicial, las comillas y los saltos de línea, así que puedes copiar directamente de la cabecera de una petición o de un log. Un bearer token opaco que no tenga tres partes separadas por puntos no se puede decodificar, y la herramienta dice cuántas partes ha encontrado.

¿Puedo descifrar un JWE o crear y firmar un JWT aquí?

No. Un token de cinco partes es un JWE y su contenido está cifrado, así que no se puede leer sin la clave privada; la herramienta lo reconoce y lo indica en lugar de mostrar un error. Tampoco genera, firma ni edita tokens: solo los lee y los comprueba.

Recomendado

Ayuda a mantener las herramientas gratis. ✨

Imágenes meramente ilustrativas. En calidad de Afiliado de Amazon, obtengo ingresos por las compras adscritas que cumplen los requisitos aplicables.