portfolios.tools

Decodificador JWT e inspector de claims

Decodifique un JSON Web Token compacto de tres partes para examinar su cabecera y sus claims, y compare los claims de tiempo con el reloj actual. La decodificación no verifica la firma ni establece confianza.

Entrada del token

El token solo permanece en la memoria de esta página y no se guarda. Al cargarse, la herramienta elimina cualquier token guardado en el navegador por una versión anterior. Esta herramienta no envía el token a una API.

Use un token de prueba sin acceso a cuentas reales para aprender el formato. No comparta un token que pueda conceder acceso a una cuenta.

Estructura del token decodificada

Pegue un JWT compacto de tres partes para examinar su cabecera y su cuerpo.

Cómo funciona el inspector JWT

Un JWT compacto firmado tiene tres partes Base64url separadas por puntos: una cabecera JSON, un cuerpo JSON con claims y un segmento de firma. Esta herramienta decodifica la cabecera y el cuerpo como objetos JSON en UTF 8. No verifica la firma, el emisor, la audiencia, los permisos ni la autorización.

Introduzca un token compacto de tres partes. La cabecera y el cuerpo decodificados aparecen como JSON formateado, y la tabla muestra claims habituales como iss, sub, aud, exp, iat y nbf. Este inspector no admite el formato cifrado de cinco partes. Su cabecera protegida puede leerse como JSON, pero no se pueden inspeccionar las claims del cuerpo cifrado sin descifrarlo.

Los valores NumericDate de exp, iat y nbf se interpretan como segundos desde la época UTC, incluidos los segundos fraccionarios. exp y nbf se comparan con el reloj cuando la página está abierta: exp indica la hora de expiración y nbf la hora antes de la cual el token aún no es válido. Los valores ausentes y mal formados se muestran por separado. Estas comparaciones no validan el token ni sus claims.

Que el segmento de firma figure como presente solo significa que la tercera parte contiene texto. La herramienta no comprueba su valor criptográfico, algoritmo, clave de firma ni emisor. Considere todos los claims decodificados como no confiables hasta que el servicio que emitió el token lo verifique.

Paso a paso

  1. Pegue un JWT compacto de tres partes en el campo del token.
  2. Revise la cabecera y el cuerpo decodificados, el segmento de firma y los claims mostrados.
  3. Compare las horas exp y nbf con el reloj mostrado y verifique el token con la clave y las reglas de confianza adecuadas antes de utilizarlo.

Ejemplo práctico

Pegue este token de muestra: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2lzc3Vlci5leGFtcGxlIiwic3ViIjoidXNlci0xMjMiLCJhdWQiOiJhcGkuZXhhbXBsZSIsImV4cCI6MTg5MzQ1NjAwMCwiaWF0IjoxODkzNDUyNDAwLCJuYmYiOjE4OTM0NTI0MDB9.c2ln. Se decodifica en una cabecera con alg HS256 y typ JWT, y claims de emisor, sujeto, audiencia, expiración, emisión y no validez antes.

La muestra tiene texto en la tercera parte, por lo que se indica que hay texto de firma. La firma no se verifica. exp corresponde a las 00:00 UTC del 1 de enero de 2030; iat y nbf corresponden a las 23:00 UTC del 31 de diciembre de 2029. La comparación depende del reloj actual.

Cuándo usar este inspector

Úselo para ver la cabecera JSON y los claims del cuerpo de un token compacto de tres partes durante el desarrollo o la resolución de problemas.

Use un servicio de confianza aparte para verificar firmas y autorización. Considere el contenido decodificado como no confiable hasta completar esas comprobaciones.

Errores comunes de interpretación

No considere que un JSON legible, un segmento de firma presente o un claim exp todavía no vencido demuestren autenticidad. Decodificar y comparar fechas no equivale a una verificación criptográfica.

No suponga que claims como iss, aud, sub o permisos personalizados son verdaderos porque aparecen en el cuerpo. Un servicio debe verificar la firma y aplicar sus propias reglas de claims y autorización.

Estructura JWT y claims de tiempo

JWT compacto = Base64url(UTF8(cabecera JSON)) . Base64url(UTF8(cuerpo JSON)) . segmento de firma

La hora de expiración ha llegado = hora UTC actual en segundos ≥ exp

Se alcanzó la hora nbf = hora UTC actual en segundos ≥ nbf

NumericDate = segundos desde 1970 01 01 00:00:00 UTC

Esta herramienta inspecciona el formato compacto firmado de tres partes. Decodifica Base64url sin relleno y UTF 8 de forma estricta, y requiere que la cabecera y el cuerpo sean objetos JSON. El resultado de expiración o de no validez antes solo compara horas; no verifica la firma ni decide si el token autentica a alguien.

Alcance y limitaciones

Esta página inspecciona un JWT compacto de tres partes y decodifica su cabecera y su cuerpo. No verifica firmas, algoritmos ni claves, no confirma emisor o audiencia, no evalúa permisos ni determina si una aplicación debe aceptar el token. No descifra tokens JWE de cinco partes, obtiene claves, llama al emisor ni contacta con un servicio de tokens. Se rechazan números JSON fuera de la precisión admitida y las fechas mostradas tienen precisión de milisegundos. Los claims de tiempo se comparan con el reloj del navegador, que puede diferir del reloj de un servicio. Esta herramienta no guarda el token, pero cualquiera con acceso a la página abierta puede verlo.

Términos clave

JWT
JSON Web Token que representa claims en una estructura firmada, protegida frente a cambios o cifrada.
Declaración
Valor con nombre en el cuerpo del token, como un emisor, sujeto, audiencia o dato de tiempo.
NumericDate
Número de segundos desde 1970 01 01 00:00:00 UTC. Se permiten segundos fraccionarios.

Preguntas frecuentes

¿Decodificar un token significa que es válido?

No. La decodificación solo muestra su estructura legible. No demuestra que lo haya emitido un servicio de confianza ni que se pueda confiar en su contenido.

¿La herramienta verifica la firma?

No. Solo indica si la tercera parte contiene texto. Para verificar la firma, un componente debe usar el algoritmo esperado y una clave de confianza para el emisor del token.

¿Por qué no se admiten tokens de cinco partes?

Un JWE compacto de cinco partes puede tener una cabecera protegida legible como JSON. El cuerpo cifrado no se puede inspeccionar como claims sin descifrarlo. Esta herramienta solo admite JWT compactos de tres partes.

¿Qué significan aquí exp, iat y nbf?

Son claims NumericDate expresados en segundos desde la época UTC. La herramienta compara exp y nbf con el reloj actual y muestra iat como una fecha. Los valores ausentes y mal formados se muestran por separado. Estas comparaciones no validan el token.

¿Qué demuestra que haya un segmento de firma?

Solo que la tercera parte no está vacía. La herramienta no verifica los bytes de la firma, el algoritmo de firma, la clave, el emisor, la audiencia ni los permisos.

Herramientas relacionadas

El codificador de cargas Base64 puede inspeccionar partes codificadas individuales. Consulte la documentación de su proveedor de identidad o servicio para verificar firmas y requisitos de claims.