Guía del Generador JWT: Creación de Tokens Firmados HS256/RS256
¿Qué es JWT
JSON Web Token (JWT) es un formato de token compacto y autónomo ampliamente utilizado para autenticación e intercambio de información:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDgwMDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
↑ Header ↑ Payload ↑ Signature
Un JWT consta de tres cadenas codificadas en Base64URL separadas por
..
Estructura de Tres Partes Explicada
Header
{
"alg": "HS256",
"typ": "JWT"
}
| Campo | Significado |
|---|---|
alg |
Algoritmo de firma: HS256, RS256, etc. |
typ |
Tipo de token, siempre JWT |
Payload
{
"sub": "1234567890",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
| Campo | Significado | Requerido |
|---|---|---|
sub |
Sujeto (ID de usuario) | Recomendado |
iat |
Marca de tiempo de emisión | Recomendado |
exp |
Tiempo de expiración | Requerido |
iss |
Emisor | Opcional |
aud |
Audiencia | Opcional |
nbf |
No Antes de (tiempo efectivo) | Opcional |
Signature
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)
La firma asegura que el token no ha sido alterado, pero el Payload NO está cifrado por defecto—nunca ponga datos sensibles en él.
HS256 vs RS256
| Comparación | HS256 | RS256 |
|---|---|---|
| Tipo de algoritmo | Simétrico (HMAC) | Asimétrico (RSA) |
| Clave | Secreto compartido (cadena) | Clave pública + Clave privada |
| Verificador | Necesita el mismo secreto | Solo necesita la clave pública |
| Caso de uso | Servicio único, microservicios internos | Multi-servicio, verificación de terceros |
| Gestión de claves | Simple, pero mayor riesgo de fuga | Más seguro, la clave pública puede compartirse |
Recomendación: Use HS256 para monolitos, RS256 para microservicios/APIs abiertas.
Uso del Generador JWT
Paso 1: Abrir la Herramienta
Visite el Generador JWT para ingresar a la interfaz de creación de tokens.
Paso 2: Seleccionar Algoritmo de Firma
- Servicio único: Seleccione HS256 e ingrese un secreto compartido
- Multi-servicio: Seleccione RS256 y pegue una clave privada
Paso 3: Completar el Payload
Agregue claims en el editor de payload:
{
"sub": "user_10086",
"name": "John Doe",
"role": "admin",
"iat": 1700000000,
"exp": 1700008000
}
iatyexpusan marcas de tiempo Unix (segundos). La herramienta soporta configuración visual del tiempo de expiración.
Paso 4: Generar el Token
Haga clic en "Generar". La herramienta automáticamente:
- Codifica en Base64URL el Header
- Codifica en Base64URL el Payload
- Calcula la firma usando la clave
- Concatena en una cadena JWT completa
Paso 5: Verificar el Token
Pegue el token generado en el Decodificador JWT y confirme:
- Header y Payload se decodifican correctamente
- La verificación de firma pasa
- El tiempo
expno ha pasado
Mejores Prácticas de Tiempo de Expiración
| Escenario | exp Recomendado | Razón |
|---|---|---|
| Access Token | 15-30 minutos | Vida corta, reduce riesgo de fuga |
| Refresh Token | 7-30 días | Vida larga, usado para renovación |
| Enlace de verificación por email | 1-24 horas | Uso único |
| API Key | Sin exp o 1+ año | Credencial a largo plazo |
Mejor práctica: Use el enfoque de doble token Access Token + Refresh Token.
Notas sobre Codificación Base64URL
JWT usa codificación Base64URL, que difiere del Base64 estándar:
| Diferencia | Base64 Estándar | Base64URL |
|---|---|---|
+ |
+ |
- |
/ |
/ |
_ |
Relleno = |
Sí | No |
Al usar la herramienta de Codificación/Decodificación Base64, asegúrese de seleccionar el modo seguro para URL.
Problemas Comunes
| Problema | Causa | Solución |
|---|---|---|
| Verificación de firma fallida | Clave no coincidente | Confirme que la generación y verificación usan la misma clave |
| Token expirado | El tiempo exp ha pasado | Regenere o use Refresh Token |
| Payload ilegible | No decodificado con Base64URL | Use el Decodificador JWT |
| Datos sensibles expuestos | Payload no cifrado | Nunca ponga contraseñas o secretos en el Payload |
| Verificación RS256 fallida | Clave pública no coincidente | Confirme que la clave pública coincide con la clave privada |
Resumen
JWT es una tecnología central para la autenticación web moderna. Comprender la estructura de tres partes y la diferencia entre HS256/RS256, y configurar correctamente los claims y la expiración, son clave para un uso seguro de JWT. El Generador JWT y el Decodificador JWT le permiten completar el flujo completo de creación, decodificación y verificación de tokens directamente en su navegador.