Decodificador JWT

Decodifica un JSON Web Token y lee su encabezado y sus claims en JSON legible. Solo decodifica: no verifica la firma.

Tu token se decodifica por completo en tu navegador. Nunca se envía a ningún sitio.

La decodificación es solo para inspección. La firma no se verifica aquí.

¿Qué Hay Dentro de un JWT?

Un JSON Web Token (JWT) es una forma compacta y autocontenida de pasar claims entre partes. Empaqueta un encabezado, una carga y una firma en tres cadenas base64url separadas por puntos, y —como cada pieza está codificada en claro— puedes abrirla y leer lo que hay dentro sin ninguna clave. Esta herramienta hace exactamente eso: divide tu token e imprime con formato las dos mitades.

Encabezado, carga, firma
El primer segmento (encabezado) declara el tipo de token ("JWT") y el algoritmo de firma (HS256, RS256, ES256…). El segundo (carga) contiene las claims: las estándar como sub (sujeto), iss (emisor), exp (vencimiento), iat (fecha de emisión), más las personalizadas como id de usuario y roles. El tercero (firma) es la firma HMAC o asimétrica sobre los dos primeros, que es lo que realmente protege el token.
Por qué la decodificación no necesita clave
Base64url es una codificación, no una cifra: no oculta nada. La protección criptográfica es la firma, y verificarla requiere la clave secreta del emisor (HMAC) o la clave pública (RSA/EC). Por eso leer un token es gratuito para cualquiera, pero forjarlo o alterarlo no lo es: cualquier cambio en el encabezado o la carga invalida la firma.
Cuándo importa la verificación
Cada vez que el código toma decisiones basándose en un token —autenticando a un usuario, concediendo acceso, confiando en un exp— debe verificar la firma con la clave del emisor, comprobar el algoritmo contra una lista de permitidos y validar exp, nbf, iss y aud. Decodificar, como hace esta herramienta, nunca es más que una ayuda de depuración.

Preguntas frecuentes

¿Cuáles son las tres partes de un JWT?

Un JWT es tres segmentos codificados en base64url unidos por puntos: encabezado, carga y firma. El encabezado indica cómo se firmó el token (algoritmo como HS256 o RS256, más el tipo). La carga lleva las claims — id de usuario, roles, vencimiento (exp), emisor (iss) y así sucesivamente. La firma es la prueba criptográfica de que las otras dos partes no han sido alteradas.

¿Por qué puedo decodificar un JWT sin la clave secreta?

Decodificar y verificar son operaciones distintas. El encabezado y la carga son base64url plano —no se aplica criptografía a ellos, solo a la firma. Cualquiera puede decodificar un JWT para leer su contenido; solo quien tiene la clave de firma (o la clave pública, para algoritmos asimétricos) puede verificar que es auténtico e intacto.

¿Cuándo hace falta realmente verificar un JWT?

Cada vez que un sistema actúa sobre un token: una API que comprueba un token de autenticación, un servidor que valida una sesión, o código que confía en una claim exp. La verificación comprueba la firma contra la clave del emisor, confirma que el algoritmo coincide con lo esperado y valida el vencimiento, el emisor y la audiencia. Nunca confíes en el contenido de un JWT hasta que su firma haya sido verificada por la parte que lo emitió.

¿Cuál es la diferencia entre un JWT y una cookie de sesión?

Una cookie de sesión es un manejador opaco: el servidor conserva los datos reales de la sesión y la cookie solo los referencia. Un JWT es autocontenido: todas las claims viajan con el token, así que un servicio sin estado puede comprobarlo sin consultar la base de datos. El precio es que un JWT no puede revocarse antes de expirar: hay que esperarlo o añadir una lista de bloqueo.

¿Se envía mi token a algún sitio cuando uso esta herramienta?

No. El token se decodifica por completo en la pestaña de tu navegador con las funciones base64 integradas de JavaScript. Nunca sale de tu dispositivo, no se registra en ningún log y no se guarda en ningún sitio. Trata con la sospecha que merece a cualquier página que pida un token y lo envíe a un servidor.