Decodificador JWT

Decodificar JWT online

Lee la cabecera y el payload de un JWT y consulta sus fechas exp, iat y nbf en UTC. Pega el token o su valor Bearer: para inspeccionar el contenido no necesitas una clave.

Decodificador JWTSe decodifica en tu navegador
Admite un JWT o el valor Authorization: Bearer. La herramienta no envía tokens a una API de decodificación ni guarda lo que introduces.
Cargar un ejemplo
Solo decodificado · firma sin verificar

Los claims pueden haber sido manipulados. Verifica la firma y los requisitos de tu aplicación antes de confiar en el token.

01 Cabecera

Algoritmo y metadatos

{
  "alg": "HS256",
  "typ": "JWT"
}

02 Payload

Claims incluidos en el token

{
  "sub": "demo-user",
  "iss": "https://example.com",
  "aud": "demo-api",
  "iat": 1704067200,
  "nbf": 1704067200,
  "exp": 1704070800
}

Fechas del token UTC

Comparación con el reloj del dispositivo, sin margen de desfase. Estas fechas no demuestran que el token sea válido.

ClaimFecha en UTCComparación con el reloj
iatEmitido el2024-01-01T00:00:00.000ZConsultando el reloj…
nbfUtilizable desde2024-01-01T00:00:00.000ZConsultando el reloj…
expVence el2024-01-01T01:00:00.000ZConsultando el reloj…

03 Firma

Algoritmo declarado: HS256 · 11 bytes · sin verificar

cGxhY2Vob2xkZXI

Qué revisar cuando falla la autenticación

Antes de atribuir un error de API al vencimiento, comprueba el destinatario. aud identifica a quién va dirigido el token y puede ser una cadena o un array. iss indica el emisor y sub, el sujeto al que se refiere. Un token destinado a otra API no sirve simplemente porque aún no haya vencido.

Los claims son afirmaciones incluidas en el token. Decodificarlos no confirma quién los escribió. Los campos obligatorios y los valores que se aceptan dependen de la aplicación o del protocolo que utilice.

Cabecera, payload y firma

Un JWT firmado habitual tiene tres partes: header.payload.signature. Las dos primeras contienen objetos JSON en UTF-8 codificados en Base64url. La última contiene bytes de firma o MAC; no es otro objeto JSON.

Puedes pegar el token solo, con Bearer o con Authorization: Bearer. No pegues la petición HTTP completa. Copia la cabecera y el payload por separado cuando necesites revisar los datos; los números grandes y la notación original se conservan en el JSON mostrado.

Cómo leer la fecha de expiración

exp marca el vencimiento, nbf el momento a partir del cual se permite usar el token e iat su emisión. Son valores NumericDate expresados en segundos desde el inicio de la época Unix. 1704067200 equivale al 1 de enero de 2024 a las 00:00 UTC. No lo confundas con milisegundos de JavaScript.

La tabla usa el reloj de tu dispositivo y no añade tolerancia por desfase. Que exp esté en el futuro no garantiza una firma auténtica ni un aud correcto. Una emisión futura se muestra como dato de diagnóstico; no provoca un veredicto general de validez.

Decodificar no es descifrar ni verificar

Base64url no oculta el contenido. Por eso puedes leer un JWT firmado sin conocer el secret. Para aceptarlo, tu aplicación debe verificar su protección criptográfica con claves de confianza y algoritmos permitidos, además de revisar los claims requeridos. No debe confiar únicamente en el alg que declara la entrada.

Esta herramienta no visita direcciones de claves ni usa claves integradas. No descifra JWE de cinco partes ni procesa JWT anidados o payloads b64: false. Admite hasta 50.000 caracteres y 64 niveles JSON; rechaza claves duplicadas para evitar lecturas ambiguas.

Ejemplos para probar

Token vencido

Datos ficticios y firma de ejemplo; no es una credencial utilizable.

Volver al decodificador JWT

Sin firma

alg: none con la tercera parte vacía.

Volver al decodificador JWT

Claims Unicode

Texto multilingüe y varios destinatarios; la firma es un marcador de posición.

Volver al decodificador JWT

Preguntas frecuentes

¿Necesito el secret para leer el payload?

No, siempre que sea un JWT de tres partes con payload JSON. Basta con decodificar Base64url. El secret o la clave pública se usa para la verificación criptográfica, que esta herramienta no realiza.

¿Qué significa alg: none?

Se trata de un token sin firma criptográfica. Conserva las tres partes, pero la última está vacía y el token termina en un punto. Eso no lo convierte en una credencial de confianza.

¿Se sube o se guarda el token?

La entrada se procesa en el navegador, no se envía a una API de decodificación, no se guarda mediante la herramienta y no se añade a la URL. Un Bearer real puede conceder acceso; para explorar las funciones puedes usar los ejemplos ficticios.

¿Los ejemplos tienen firmas válidas?

No. El ejemplo vencido tiene exp el 1 de enero de 2024 a las 01:00 UTC y una firma de relleno. El de Unicode muestra texto multilingüe y varios destinatarios, también con firma de relleno. El restante usa alg: none.

¿Por qué aparece un error de formato?

Revisa que haya tres segmentos y que los dos primeros sean objetos JSON UTF-8. Quita espacios, comillas y relleno. También se rechazan claves duplicadas y una firma vacía cuando alg no es none. Cinco partes pueden indicar un JWE cifrado, que no se descifra aquí.

RFC 7519 · RFC 7515 · RFC 8725

Volver al decodificador JWT