Decodificador de JWT

Pega un JWT para ver su header y payload decodificados, con los claims estándar como la expiración explicados. No se sube nada, las firmas nunca se verifican ni se comprueban contra un secreto.

Header


        

Payload


        

Cómo funciona

Un JWT son tres segmentos Base64URL unidos por puntos: header, payload, firma. La herramienta divide en los puntos, luego decodifica los primeros dos segmentos mapeando el alfabeto seguro para URL de vuelta a Base64 estándar (- a +, _ a /), restaurando el padding que los JWT omiten, ejecutando atob(), y decodificando los bytes como UTF-8 con TextDecoder. Cada segmento se procesa con JSON.parse y se formatea. Los claims estándar (iss, sub, aud, exp, nbf, iat, jti) reciben etiquetas legibles, los timestamps unix se convierten en fechas legibles, y exp se compara con tu reloj para decirte si el token ha expirado. El tercer segmento, la firma, nunca se analiza en absoluto.

Esa es la distinción con la que esta herramienta es estricta: decodificar no es verificar. El payload de cualquier JWT es legible por cualquiera, está codificado, no encriptado. Probar que el token es genuino significa recalcular la firma, lo que requiere el secreto de firma (para HMAC) o la clave del emisor (para RSA/ECDSA). Esta herramienta deliberadamente no ofrece una caja de "pega tu secreto": acostumbrarse a pegar secretos de firma de producción en páginas web es un riesgo que ninguna comodidad justifica, y la verificación pertenece de todos modos a tu servidor. Nunca confíes en un claim decodificado que no hayas verificado del lado del servidor.

Todo se ejecuta en el JavaScript de esta página usando atob y las APIs de decodificación de texto. Pega un token real con la pestaña Red de las DevTools abierta y observa: no se hace ninguna petición, el token nunca sale de la pestaña del navegador.