JWT
Decodificador JWT
Decodifica el encabezado y la carga útil de un JSON Web Token.
Acerca de los JWT
Un JSON Web Token empaqueta un encabezado, una carga útil y una firma en tres segmentos codificados en Base64URL unidos por puntos. El encabezado y la carga útil son solo JSON codificado que cualquiera puede leer, mientras que la firma es lo que realmente demuestra que el token no ha sido manipulado.
El campo alg de la cabecera indica el algoritmo de firma, pero como la cabecera es solo JSON decodificado y no verificado, un cliente no puede confiar en que diga algo verdadero —una clase conocida de vulnerabilidad JWT consiste en que un atacante cambie alg a "none" y elimine la firma, esperando que un verificador descuidado acepte un token sin firmar. La verificación real debe comprobar la firma contra un algoritmo y una clave concretos, elegidos por el propio servidor que verifica, nunca leídos del token. Los claims exp e iat del payload son marcas de tiempo Unix (segundos desde el epoch, no milisegundos); combina esta herramienta con el Conversor de marcas de tiempo para leerlos como fechas de calendario.
Dónde te lo encontrarás
- Inspeccionar un token de acceso o de identidad emitido por un proveedor OAuth u OIDC
- Depurar por qué a un token le falta un claim esperado
- Comprobar la caducidad o el emisor de un token sin escribir código
- Entender qué pone realmente una API o biblioteca de terceros dentro de sus tokens
Preguntas frecuentes
¿La decodificación verifica la firma?
No — esto solo decodifica el encabezado y la carga útil para que puedas leerlos. No comprueba la firma, así que un token decodificado no es prueba de que sea auténtico o no haya caducado.
¿Puedo confiar en los claims de un token que no he verificado?
No para decisiones de seguridad. Cualquiera puede crear un JWT con claims arbitrarios; solo una firma verificada frente a la clave del emisor hace que el contenido sea confiable.
¿Se almacena el token que pego aquí?
No. La decodificación ocurre por completo para esa solicitud; no se registra ni se conserva nada.
¿Se puede confiar en el campo alg de la cabecera?
No por sí solo. La cabecera es JSON no verificado que un atacante puede controlar, desde el punto de vista de quien lee un token en bruto —un ataque JWT conocido pone alg en "none" y elimina la firma por completo, esperando que un verificador que confíe ciegamente en la cabecera lo acepte como válido. Un código de verificación correcto fija de antemano qué algoritmo y clave espera, y nunca toma esa decisión del propio token. Esta herramienta solo decodifica para lectura; no toma ninguna decisión de confianza.