Ir al contenido

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

  1. Elige el algoritmo y escribe el payload JSON.
  2. Introduce o genera una clave secreta.
  3. 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.