SITIO EN CONSTRUCCIÓN. Todo se ofrece TAL CUAL y SIN GARANTÍAS, en la medida en que la ley lo permita. Es información, no asesoría profesional. Úsalo bajo tu propia responsabilidad. Términos y límites de responsabilidad →

eThorns EN
← DesarrolloEN

Herramienta 5.13

Decodificador JWT: ver header, payload y vencimiento

Decodifica un JSON Web Token en tu navegador: mira el encabezado y el payload como JSON y si ya venció. El token nunca se envía a ningún lado.

Funciona en tu equipoFunciona completa en tu navegador: nada de lo que escribes o subes sale de tu equipo.

Cómo usarla

  1. Pega el token (con o sin 'Bearer ').
  2. Revisa el encabezado y el payload, y mira exp, iat y nbf en tu hora local.
  3. Recuerda que aquí no se verifica la firma: eso lo debe hacer tu servidor.

Qué lleva un JWT y para qué abrirlo

Un JWT (JSON Web Token) es esa cadena larga que empieza por eyJ y que muchas aplicaciones usan para mantener tu sesión abierta o para que un sistema llame a otro. Tiene tres partes separadas por puntos: un encabezado que dice cómo se firmó, un contenido (payload) con los datos, llamados claims, y una firma.

Los desarrolladores lo decodifican para ver por qué falla un inicio de sesión, qué roles o permisos tiene un usuario o cuándo vence una sesión. Las dos primeras partes son solo JSON codificado en Base64URL, no cifrado, así que se pueden leer sin ninguna clave.

Ejemplo: un token que vivió una hora

Pega un token cuyo contenido sea {"sub":"1234","name":"Pepito Pérez","iat":1735689600,"exp":1735693200}. La línea de estado dice ✗ Vencido y hace cuánto. La tabla convierte las horas: iat (emitido) y exp (vence) están a una hora de distancia, así que el token sirvió durante una hora.

La columna Tu hora local las muestra en tu propia zona horaria. En Colombia, que está en UTC−5 todo el año, eso es el martes 31 de diciembre de 2024 de 7:00 a 8:00 p. m., aunque en UTC ya era 1 de enero. Tenlo en cuenta cuando un registro en UTC y el reporte de un usuario en hora local parezcan no cuadrar.

Milisegundos, datos personales y tokens falsos

Si exp muestra una fecha dentro de decenas de miles de años, el sistema que creó el token escribió milisegundos en vez de segundos: 1735693200000 leído como segundos cae en el año 56971. Las horas de un JWT siempre van en segundos desde 1970.

Cualquiera que tenga el token puede leer su contenido, así que nunca pongas ahí una contraseña, un número de cédula, un celular u otros datos personales. Y un token que se decodifica bien puede ser falso: esta página no revisa la firma. Solo tu servidor, con la clave correcta, puede decir si un token es auténtico.

Preguntas frecuentes

¿Es seguro pegar aquí un token de producción?

El token se decodifica con JavaScript en tu dispositivo y nunca se envía ni se guarda. Aun así, un token vigente funciona como una contraseña: trátalo con cuidado y usa tokens vencidos o de prueba cuando puedas.

¿Por qué no verifica la firma?

Para verificarla hace falta la clave secreta o pública, y decir que un token es 'válido' sin ella sería engañoso. Cualquiera puede crear un token con cualquier contenido, así que confía en sus datos solo cuando tu servidor haya verificado la firma.

¿Puede leer tokens cifrados (JWE)?

Solo el encabezado. El contenido de un JWE está cifrado y no se puede leer sin la clave para descifrarlo.

¿Por qué un token recién creado sale como vencido o aún no válido?

Casi siempre es un problema de reloj. Si el reloj del servidor va adelantado respecto al tuyo, nbf puede quedar unos segundos en el futuro; si la fecha de tu computador está mal, un token nuevo puede verse vencido. Revisa la fecha y hora del dispositivo, y deja una pequeña tolerancia en el servidor.

¿Qué significan sub, iss y aud?

Son claims estándar definidos en el RFC 7519: `iss` (issuer) es quien creó el token, `sub` (subject) es de quién trata, normalmente un ID de usuario, y `aud` (audience) es el servicio al que va dirigido. `jti` es un identificador único del token. La tabla solo convierte los tres claims de tiempo, `exp`, `iat` y `nbf`; los demás aparecen tal cual en el payload.

  • 5.1Formateador JSONFormatea o minifica JSON y ubica el error por línea y columna.
  • 5.2Convertidor CSV y JSONConvierte CSV a JSON o JSON a CSV con coma, punto y coma o tabulación como separador.
  • 5.3Conversor YAML a JSONConvierte YAML a JSON y viceversa en tu navegador.
  • 5.4Base64Codifica o decodifica Base64 en tu navegador: texto UTF-8, Base64 apto para URL, archivos a Base64 o data URL, y Base64 de vuelta a un archivo descargable.
  • 5.5Contraste de colorMide el contraste entre el color del texto y el del fondo según WCAG 2.2 AA y AAA, para texto normal, texto grande y componentes.
  • 5.6Explicador de cronLee una expresión cron de 5 campos como una frase y ve sus próximas 5 ejecuciones en tu zona horaria.
  • 5.7Bases numéricasConvierte números enteros entre decimal, hexadecimal, binario y octal, con longitud en bits y dígitos agrupados.
  • 5.8Entidades HTMLCodifica texto como entidades HTML (con nombre, decimales o hex) o decodifícalas: <, >, &, comillas, tildes, ñ y símbolos Latin-1.
  • 5.9Codificar URLCodifica o decodifica URLs y valores de consulta (percent-encoding) y separa cualquier URL en protocolo, host, ruta, parámetros y fragmento.
  • 5.10Hash SHA-256Calcula hashes SHA-1, SHA-256, SHA-384 y SHA-512 de textos o archivos y verifica una descarga con su checksum.
  • 5.11Generador de UUIDGenera UUID v4 aleatorios o UUID v7 ordenados por tiempo (RFC 9562) en tu navegador, de 1 a 1000 a la vez, en mayúsculas o sin guiones.
  • 5.12Timestamp UnixConvierte timestamps Unix en segundos o milisegundos a ISO 8601, UTC y tu hora local, o una fecha a epoch.
  • 5.14Probador de regexPrueba expresiones regulares en vivo: coincidencias resaltadas, grupos de captura, banderas y errores claros.

╌╌ FIN ╌╌