BrowserTools
Publicidad
Inicio / Codificadores / Generador de JWT (HS256)

Generador de JWT (HS256)

Crea JSON Web Token firmados con HS256 localmente en tu navegador, sin subir nada.

Cargando Generador de JWT (HS256)… Si no ocurre nada, activa JavaScript.

Un JSON Web Token, o JWT, es un formato de token compacto y firmado que se usa por todas partes en la autenticación y autorización modernas. Un JWT empaqueta una cabecera y una carga útil de reclamaciones en dos segmentos codificados en Base64url, y luego añade una firma que demuestra que el token no ha sido manipulado. Este generador construye para ti un token HS256 totalmente válido: ensambla la cabecera estándar, codifica tu carga útil y firma el resultado con HMAC-SHA256 usando un secreto que tú proporcionas. Es la contraparte natural de un decodificador de JWT, ya que te permite crear los tokens que de otro modo solo podrías inspeccionar.

Preguntas frecuentes

¿Se envía mi secreto o mi carga útil a algún sitio?
No. El token se construye y se firma enteramente en tu navegador usando la API Web Crypto nativa. Tu carga útil y tu secreto de firma nunca salen de tu dispositivo, nunca se registran y nunca se transmiten, lo cual es esencial porque el secreto es lo que mantiene seguro un token HS256.
¿Qué es HS256 y cómo funciona la firma?
HS256 es HMAC con SHA-256, un esquema de firma simétrico. La herramienta une la cabecera y la carga útil codificadas en Base64url con un punto, calcula un HMAC-SHA256 sobre esa cadena usando tu secreto como clave y codifica el resultado en Base64url como la firma. Cualquiera que tenga el mismo secreto puede volver a calcularla y verificarla.
¿Qué debería poner en la carga útil?
La carga útil es un objeto JSON de reclamaciones. Las reclamaciones registradas incluyen sub (sujeto), iss (emisor), aud (audiencia), iat (emitido en), exp (expiración) y nbf (no antes de), todas usando marcas de tiempo Unix para los campos temporales. También puedes añadir cualquier reclamación personalizada que tu aplicación necesite, como un rol de usuario o un id de inquilino.
¿Cómo añado un tiempo de expiración?
Incluye una reclamación exp con una marca de tiempo Unix en segundos (no milisegundos) para el momento en que el token debe dejar de ser válido. Por ejemplo, un token válido durante una hora a partir de ahora usaría el tiempo Unix actual más 3600. Los verificadores que respetan exp rechazarán el token después de ese momento.
¿Es HS256 lo bastante seguro para producción?
HS256 es seguro cuando el secreto es largo, aleatorio y se mantiene confidencial, razón por la cual se recomienda usar un secreto de al menos 256 bits (32 bytes). Su limitación es que el mismo secreto firma y verifica, así que toda parte que pueda verificar también puede falsificar tokens. Cuando el emisor y el verificador son partes distintas, un algoritmo asimétrico como RS256 suele encajar mejor.
¿Por qué obtuve un error de JSON no válido?
El cuadro de carga útil debe contener JSON válido. Los errores comunes son las comas finales, las comillas simples en lugar de dobles alrededor de las claves y los valores de cadena, o las claves sin comillas. Corrige el JSON para que se analice limpiamente y el generador lo firmará. El mensaje de error indica dónde falló el análisis.
¿Puedo decodificar el token que acabo de generar?
Sí. La salida es un JWT estándar, así que puedes pegarlo en cualquier decodificador de JWT, incluida la herramienta decodificadora complementaria, para inspeccionar la cabecera y la carga útil. Para verificar la firma necesitarás el mismo secreto que usaste para firmarlo aquí.
¿Funciona el generador sin conexión?
Sí. Depende solo de la API Web Crypto que viene integrada en los navegadores modernos, sin bibliotecas externas. Una vez cargada la página no hay solicitudes de red, así que puedes generar tokens sin ninguna conexión a internet.

Acerca de Generador de JWT (HS256)

HS256 es el algoritmo de JWT más utilizado. Es simétrico, lo que significa que se usa el mismo secreto tanto para crear como para verificar la firma, lo que simplifica las cosas cuando un único servicio emite y comprueba sus propios tokens. Para usar la herramienta, pega una carga útil JSON que contenga tus reclamaciones (las comunes incluyen sub para el sujeto, iat para el momento de emisión y exp para la expiración), introduce tu secreto de firma y pulsa Generar. La herramienta valida que tu carga útil sea JSON bien formado, informa de un error claro si no lo es, y produce un token en la familiar forma cabecera.carga útil.firma listo para copiar.

La firma ocurre enteramente en tu navegador a través de la API Web Crypto nativa, sin biblioteca externa y sin solicitud de red. Tu carga útil y, lo más importante, tu secreto nunca salen de tu dispositivo, nunca se registran y nunca se transmiten. Como el secreto es lo único que debe permanecer confidencial para que HS256 sea seguro, hacer el trabajo en local es exactamente el enfoque correcto. La herramienta también funciona totalmente sin conexión una vez cargada la página.

El formato de token oculto a plena vista

Los JWT se estandarizaron en el RFC 7519 en 2015, como parte de una familia de especificaciones JOSE (JavaScript Object Signing and Encryption). El formato es deliberadamente seguro para URL: cada uno de los tres segmentos se codifica en Base64url, que cambia los caracteres más y barra por guion y guion bajo para que un token pueda viajar en una URL, una cabecera HTTP o una cookie sin más escapes.

Un detalle que sorprende a muchos desarrolladores es que la carga útil de un JWT firmado no está cifrada, solo codificada. Cualquiera que intercepte el token puede decodificar en Base64url el segmento del medio y leer cada reclamación de su interior. La firma garantiza la integridad y la autenticidad (que el token fue emitido por alguien que posee el secreto y no ha sido alterado), pero no hace nada por ocultar el contenido. Por eso nunca deberías colocar contraseñas ni otros secretos en la carga útil de un JWT.

La vulnerabilidad de JWT más infame tenía que ver con el campo del algoritmo en la cabecera. Algunas bibliotecas tempranas confiaban en el valor alg a ciegas, lo que permitía a un atacante establecerlo en 'none' y eliminar la firma por completo, o cambiar un token de un algoritmo asimétrico a uno simétrico y falsificarlo usando la clave pública como secreto HMAC. Las bibliotecas modernas se defienden de esto exigiendo que el algoritmo esperado se especifique de antemano, una lección que dio forma a cómo se validan los JWT hoy.

Publicidad
Publicidad
Publicidad