Generador JWT (HS256, HS384, HS512)
Crea un JSON Web Token firmado con HS256, HS384 o HS512 con tu clave secreta, con fechas iat y exp automáticas. La firma se hace en tu navegador.
- Gratis
- Sin registro
- Sin subir archivos
- Windows, Mac, Android, iPhone
Cargando la herramienta…
Acerca de esta herramienta
Escribe el payload del token en JSON, elige el algoritmo y la clave secreta: el JWT firmado aparece al instante, con las fechas de emisión y caducidad calculadas por ti. Práctico para probar una API protegida sin instalar una biblioteca ni confiar tu clave a una web.
Cuándo usarla
Probar una API protegida
¿Tu API verifica tokens HS256? Genera uno con la misma clave que tu entorno de desarrollo, el sub y los roles que necesites, y envíalo en la cabecera Authorization: Bearer desde Postman, curl o tu navegador.
Reproducir un caso límite
Un token caducado, un rol que falta, una audiencia inesperada: cambia el payload y la duración para comprobar que tu servidor rechaza lo que debe.
Aprender cómo funciona un JWT
Ver cambiar en directo y en color la cabecera, el payload y la firma ayuda a entender que un JWT solo está codificado y firmado, no cifrado.
Cómo se usa
- Elige el algoritmo y escribe el payload JSON.
- Introduce o genera una clave secreta.
- Copia el token firmado.
Cómo funciona
La cabecera (campos alg y typ) y el payload se serializan en JSON y se codifican en Base64URL. La firma es un HMAC calculado sobre «cabecera.payload» con la clave secreta y la función hash del algoritmo elegido (SHA-256, SHA-384 o SHA-512), mediante Web Crypto, la implementación nativa del navegador.
Si indicas una duración (15m, 1h, 7d), se añade el campo exp con la fecha de caducidad en segundos Unix; iat recibe la fecha actual. El token obtenido es idéntico al que producirían jsonwebtoken (Node.js), PyJWT o firebase/php-jwt con la misma clave.
Consejos para un mejor resultado
- Usa una clave aleatoria de al menos 32 bytes para HS256: el botón «Generar una clave» crea una.
- No pongas nunca una contraseña ni datos sensibles en el payload: cualquiera puede leerlo.
- No uses la clave de producción para pruebas: genera una clave por entorno.
- Mantén los tokens de acceso de corta duración (5 a 15 minutos) y usa tokens de renovación para alargar las sesiones.
- Para firmar con una clave privada (RS256, ES256), usa una biblioteca en el servidor: la clave privada no debe viajar.
Problemas frecuentes y soluciones
Mi servidor rechaza el token
Comprueba que la clave es exactamente la misma (sin espacio final) y que el servidor espera el mismo algoritmo. Algunos servidores esperan una clave codificada en Base64: decodifícala antes.
El token ya ha caducado
El reloj del servidor y el de tu dispositivo pueden diferir, o la duración es demasiado corta. Alarga la duración o déjala vacía.
«El payload debe ser un objeto»
El payload de un JWT es siempre un objeto JSON entre llaves, no un array ni un valor suelto.
Preguntas frecuentes
¿Se envía mi clave secreta a algún sitio?
No. Web Crypto calcula la firma en tu navegador; ni la clave ni el payload salen de tu dispositivo.
¿Por qué solo HS256, HS384 y HS512?
Son los algoritmos de secreto compartido. RS256 y ES256 requieren una clave privada que es mejor no pegar nunca en una página web.
¿El token está cifrado?
No. Un JWT firmado solo está codificado en Base64URL: cualquiera puede leer su payload. La firma solo garantiza que no se ha modificado.
¿Cómo verifico el token que he creado?
Abre el decodificador JWT de ZanaKit y pega el token y la misma clave: la firma debe aparecer como válida.
Búsquedas relacionadas
¿Sigues atascado?
Pregunta en el foro: la categoría, la herramienta, la ficha de tu dispositivo y el resultado de la prueba se rellenan solos.