Codificador de JWT (Generar y Firmar)

Genera un JWT (JSON Web Token) firmado con HMAC (HS256, HS384 o HS512) a partir del JSON del encabezado y la carga útil, directamente en tu navegador. Nada, ni siquiera la clave secreta, se envía a un servidor.

Algoritmos de firma HMAC compatibles

Algoritmo Función hash Longitud de firma Descripción
HS256 SHA-256 256 bits (32 bytes) La firma HMAC predeterminada más utilizada. Es el estándar en muchas implementaciones, incluidos los tokens de ID de OAuth 2.0 y OpenID Connect.
HS384 SHA-384 384 bits (48 bytes) Una opción intermedia cuando se desea una firma más larga que HS256 para un margen de seguridad adicional.
HS512 SHA-512 512 bits (64 bytes) Tiene la mayor longitud de firma y suele combinarse con una clave secreta aleatoria suficientemente larga.

Consejos

  • El JWT se firma enteramente con la Web Crypto API de tu navegador: el encabezado, la carga útil y la clave secreta nunca se envían al servidor de toolbase.cc.
  • Al cambiar el algoritmo de firma (HS256/HS384/HS512) se actualiza automáticamente el campo alg del encabezado JSON. Edita el encabezado directamente si quieres añadir otras reclamaciones como kid.
  • Esta herramienta solo admite algoritmos HMAC (clave simétrica). Si necesitas un algoritmo de clave pública como RS256 o ES256, utiliza una librería del lado del servidor, como un paquete JWT de Node.js.
  • Tras editar el encabezado o la carga útil, recuerda pulsar de nuevo "Generar JWT"; de lo contrario, el token mostrado seguirá firmado con la entrada anterior.
  • Para comprobar el contenido de un JWT recién generado, pégalo en la herramienta complementaria Decodificador de JWT y verifica el encabezado y la carga útil.

Preguntas frecuentes

No, no lo recomendamos. Aunque la firma en sí se realiza de forma segura dentro de tu navegador, introducir una clave secreta de producción en una herramienta del navegador no es una buena práctica desde el punto de vista de la seguridad. Esta herramienta está pensada para comprobar el comportamiento de una API durante el desarrollo o con fines de aprendizaje.

HS256 es un algoritmo de clave simétrica en el que el emisor y el receptor comparten la misma clave secreta, mientras que RS256 es un algoritmo de clave pública (asimétrica) en el que una clave privada firma y una clave pública verifica. Esta herramienta solo admite la familia HMAC —HS256, HS384 y HS512— y no admite algoritmos de clave pública como RS256 o ES256.

Sí, puedes editar el encabezado JSON directamente. Sin embargo, si el algoritmo seleccionado (el que realmente se usa para calcular la firma) no coincide con el valor del campo alg, otra implementación que verifique el token podría rechazarlo con un error, así que asegúrate de que ambos coincidan siempre.

Puedes pegar la cadena JWT generada en la herramienta complementaria "Decodificador de JWT" para comprobar al instante el contenido del encabezado y la carga útil. Aun así, la validez real de la firma solo puede confirmarse de forma definitiva mediante la lógica de verificación del lado del servidor que posea la misma clave secreta.
ツールくん

A propósito — Por qué la firma de un JWT puede hacerse enteramente en el navegador

Los algoritmos de firma de JWT se dividen en dos grandes familias: los algoritmos de "clave simétrica" (HMAC, es decir HS256/HS384/HS512), donde el emisor y el receptor comparten la misma clave secreta, y los algoritmos de "clave pública" (como RS256 y ES256), donde una clave privada firma y una clave pública verifica. Como los primeros pueden calcularse enteramente con crypto.subtle.sign() de la Web Crypto API (SubtleCrypto) estandarizada por el W3C, sin necesidad de ninguna librería externa, esta herramienta se limita deliberadamente a los algoritmos HMAC.

La seguridad de una firma HMAC depende por completo de lo difícil que sea adivinar la clave secreta, no del contenido del encabezado o la carga útil. El RFC 7518 (JSON Web Algorithms) recomienda una longitud de clave de al menos 256 bits (32 bytes) para HS256; usar una palabra corta o una cadena de diccionario como clave secreta supone el riesgo de que la firma se falsifique por fuerza bruta. En entornos de producción reales, debe usarse una cadena aleatoria suficientemente larga generada por un generador de números aleatorios.

Esta herramienta es una utilidad para desarrolladores pensada para comprobar el comportamiento de una API durante el desarrollo o probar la lógica de verificación de firmas de webhooks. La clave secreta que introduces se gestiona solo en la memoria de tu navegador y nunca se transmite externamente, pero el riesgo de que un equipo compartido o una extensión del navegador recopile el portapapeles o los datos introducidos no es nulo. Recomendamos encarecidamente no introducir nunca una clave que uses realmente en producción en una herramienta como esta, ni siquiera solo para comprobar que funciona.