HMAC con SHA-256. Clave simétrica compartida. Recomendado para uso general.
Cómo funciona
Un JSON Web Token (JWT) es un token compacto y firmado que transporta información (claims) entre dos partes. Se compone de tres partes separadas por puntos —header, payload y firma—, cada una codificada en Base64URL.
En modo Generar definís el header y el payload en JSON y firmás con una clave secreta (HMAC) o con una clave privada (RSA/ECDSA). En modo Leer pegás un token existente para inspeccionar su contenido y verificar la firma.
El payload no está cifrado: cualquiera puede leerlo decodificando el Base64URL. La firma solo garantiza que el token no fue alterado, no lo oculta. Nunca pongas datos sensibles en un JWT.
Ejemplos
header{"alg":"HS256","typ":"JWT"} → eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9payload{"sub":"1234567890","name":"John Doe","iat":1516239022} → eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQtokeneyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cLa firma (tercera parte) depende del algoritmo y de la clave; este ejemplo usa HS256 con la clave "your-256-bit-secret".Casos de uso
- Autenticar usuarios en APIs: el servidor emite un token firmado y lo valida en cada petición sin guardar sesión.
- Inspeccionar y depurar tokens de autenticación para ver sus claims (sub, exp, roles) y fechas.
- Verificar la firma de un token con la clave secreta o la clave pública para confirmar que no fue manipulado.
- Generar tokens de prueba con distintos algoritmos (HMAC, RSA, ECDSA) al desarrollar un flujo de autenticación.
Preguntas frecuentes
¿El contenido de un JWT está cifrado?
No. El header y el payload solo están codificados en Base64URL, que cualquiera puede decodificar. La firma garantiza integridad (que no se alteró), no confidencialidad.
¿Cuál es la diferencia entre HS256 y RS256?
HS256 usa una única clave secreta compartida para firmar y verificar (HMAC). RS256 es asimétrico: se firma con una clave privada y se verifica con la pública, ideal cuando muchos servicios necesitan validar sin poder emitir.
¿Qué significan los claims iat, exp y nbf?
Son marcas de tiempo estándar: iat (emitido en), exp (expira en) y nbf (no válido antes de). Se expresan en segundos desde 1970 (epoch Unix).
¿Por qué se desaconseja el algoritmo "none"?
Porque produce un token sin firma: cualquiera puede modificar el payload y seguirá siendo aceptado. Solo sirve para pruebas, nunca en producción.
¿Se envía mi token a un servidor?
No. La generación, decodificación y verificación ocurren íntegramente en tu navegador; el token y las claves nunca salen de tu dispositivo.