Decodificador / verificador de JWT
Decodifica el header y el payload de un JWT, verifica su firma y ve cuándo caduca.
Qué es un JSON Web Token
Un JSON Web Token (JWT) es una forma compacta y autocontenida de transportar un conjunto de claims —afirmaciones como "este es el usuario 42" o "este token caduca al mediodía"— de manera que se pueda verificar. Los JWT están por todas partes en la autenticación moderna: tras iniciar sesión, el servidor suele entregar a tu navegador un JWT firmado, y cada petición posterior lo incluye para que el servidor confíe en quién eres sin consultar nada. Como el token lleva sus propios claims y firma, se describe como "sin estado" (stateless).
Un JWT son tres partes codificadas en Base64URL unidas por puntos: header.payload.signature. Esta herramienta divide y decodifica esas partes por ti, muestra los claims de forma legible y, si aportas la clave de firma, verifica que la firma es auténtica.
Las tres partes
- Header: describe cómo está firmado el token, sobre todo el algoritmo ("alg", p. ej. HS256 o RS256) y el tipo de token.
- Payload: los claims en sí, un objeto JSON con campos como sub (sujeto/usuario), exp (caducidad), iat (emitido en) y cualquier dato personalizado que añadiera el emisor.
- Signature: un valor criptográfico calculado sobre el header y el payload con un secreto o clave privada. Es lo que hace fiable a un JWT: cambia un solo carácter del payload y la firma dejará de coincidir.
Es fundamental: el header y el payload solo están codificados, no cifrados. Cualquiera que tenga el token puede leerlos. La firma no oculta el contenido: demuestra que no ha sido alterado. Nunca pongas contraseñas ni secretos en el payload de un JWT.
Verificar la firma
Decodificar un JWT te dice qué afirma; verificarlo te dice si creer esas afirmaciones. La verificación recalcula la firma a partir del header y el payload usando una clave y comprueba que coincide. Hay dos familias de algoritmos, y usan tipos de clave distintos:
- HMAC (HS256, HS384, HS512): un esquema simétrico. El mismo secreto compartido firma y verifica. Aporta ese secreto para verificar.
- RSA y ECDSA (RS256, PS256, ES256 y afines): esquemas asimétricos. Una clave privada firma y una clave pública verifica. Aporta la clave pública en formato PEM para verificar; nunca necesitas la clave privada solo para comprobar un token.
Esta herramienta detecta el algoritmo desde el header automáticamente y verifica por completo en tu navegador con la Web Crypto API, así que ni el token ni la clave se suben jamás.
Leer los claims estándar
Un puñado de nombres de claim están estandarizados (se llaman "registered claims"). La herramienta los etiqueta y convierte los basados en tiempo de marcas de tiempo Unix en bruto a tu hora local, con un estado en lenguaje claro para que veas de un vistazo si un token está activo, caducado o aún no es válido:
- exp — tiempo de caducidad: tras este momento el token debe rechazarse.
- nbf — not before: el token no es válido hasta este momento.
- iat — issued at: cuándo se creó el token.
- iss — issuer: quién creó el token.
- sub — subject: sobre quién o qué trata el token (a menudo un ID de usuario).
- aud — audience: para quién está destinado el token.
- jti — un identificador único para el token.
Preguntas frecuentes
- ¿Se envía mi token o mi clave a algún sitio?
- No. La decodificación y la verificación de la firma se ejecutan por completo en tu navegador con la Web Crypto API. El token, el secreto y la clave pública nunca salen de tu dispositivo, así que es seguro inspeccionar tokens de producción.
- ¿Qué algoritmos de firma puede verificar?
- HMAC (HS256, HS384, HS512) con un secreto compartido, y RSA (variantes RS y PS) y ECDSA (ES256, ES384) con una clave pública en formato PEM. El algoritmo se detecta automáticamente desde el header del token.
- ¿Un JWT está cifrado?
- No. Un JWT firmado estándar solo está codificado, no cifrado: cualquiera puede leer su header y su payload. La firma demuestra que el token no ha sido alterado, pero no oculta el contenido, así que nunca guardes secretos en el payload.
- ¿Necesito la clave privada para verificar un token RS256?
- No. Los algoritmos asimétricos verifican con la clave pública. Solo necesitas la clave privada para crear (firmar) un token, nunca para comprobarlo.
- ¿Por qué mi token aparece como caducado?
- El claim exp está en el pasado respecto al reloj de tu dispositivo. La herramienta convierte exp, nbf e iat a tu hora local y muestra un estado para que confirmes de un vistazo la ventana de validez del token.
- ¿Cuál es la diferencia entre HS256 y RS256?
- HS256 es simétrico: un único secreto compartido firma y verifica, lo más simple cuando la misma parte hace ambas cosas. RS256 es asimétrico: una clave privada firma y una pública verifica, lo que permite que muchas partes verifiquen tokens sin poder falsificarlos.
- ¿Puedo editar el payload y volver a firmar el token?
- Esta herramienta es de solo lectura: decodifica y verifica, pero no crea ni vuelve a firmar tokens. Así se mantiene enfocada y evita manejar claves privadas de firma.