Saltar al contenido
SPCX Tools

Codificador JWT

Genera y firma JSON Web Tokens (JWT) basados en HMAC al instante en tu navegador.

Funciona en local: los archivos no salen de tu dispositivo

Cargando herramienta…

Cómo usar Codificador JWT

  1. 1Selecciona tu algoritmo de firma HMAC preferido (HS256, HS384 o HS512).
  2. 2Edita el payload JSON. Usa los botones rápidos para insertar la hora actual en claims estándar como iat y exp.
  3. 3Introduce tu clave secreta. Si tu sistema usa un secreto codificado en Base64, marca la casilla Base64.
  4. 4El token firmado se actualiza automáticamente mientras escribes. Haz clic en Copiar para obtener el JWT final.

Un codificador de JWT local y seguro

Este codificador de JWT permite a los desarrolladores crear, modificar y firmar JSON Web Tokens rápidamente, de forma directa en el navegador. Ya sea que estés creando un flujo de autenticación, probando un endpoint de API o depurando un microservicio, puedes generar tokens válidos al instante sin escribir scripts personalizados ni exponer tus credenciales a servidores de terceros.

Como la herramienta se basa en la Web Crypto API nativa de tu navegador, todo el procesamiento de datos y la firma criptográfica se realizan íntegramente en tu dispositivo. Tu payload JSON y tus claves secretas nunca se suben, almacenan ni registran. Este enfoque local hace que sea seguro firmar JWT online, incluso cuando trabajas con credenciales sensibles de desarrollo o pruebas.

Cómo crear un token JWT

Para crear un token JWT, necesitas tres componentes: un encabezado (que define el algoritmo), un payload (que contiene tus datos) y una clave secreta (que protege el token).

Comienza seleccionando el algoritmo. Esta herramienta funciona como un robusto generador de JWT HS256, pero también admite HS384 y HS512. Estos son algoritmos HMAC simétricos, lo que significa que se utiliza exactamente la misma clave secreta para firmar el token y verificarlo posteriormente. Cuanto mayor sea el número (por ejemplo, 512), mayor será el tamaño del hash resultante, lo que ofrece una mayor seguridad criptográfica a cambio de una cadena de token ligeramente más larga.

A continuación, define tu payload en el área de texto. El payload debe ser un JSON válido. A medida que editas el JSON o actualizas la clave secreta, la herramienta recalcula la firma en tiempo real, ofreciendo respuesta inmediata si hay un error de sintaxis en la estructura JSON. Una vez configurados el payload y la clave secreta, el token final estará listo para copiarse y usarse en las cookies o encabezados Authorization de tu aplicación.

Casos de uso comunes para generar tokens

Contar con un generador de jwt confiable es esencial en el desarrollo web moderno. Los desarrolladores suelen utilizar esta herramienta para diversos escenarios de prueba y depuración:

Probar endpoints de API: Al trabajar con clientes de API como Postman o Insomnia, a menudo necesitas un bearer token válido para acceder a rutas protegidas. En lugar de ejecutar toda tu aplicación frontend para iniciar sesión y obtener un token, puedes generar uno manualmente aquí con el ID de usuario y los roles exactos que necesites.

Depurar la lógica de autenticación: Si tu backend rechaza los tokens, crear uno manualmente ayuda a aislar el problema. Puedes comprobar si el error se debe a una clave secreta incorrecta, un payload mal formado o una discrepancia en el algoritmo de firma.

Crear casos límite: Comprobar cómo maneja tu backend los tokens caducados, la falta de claims o los roles no autorizados es crucial para la seguridad. Aquí puedes manipular fácilmente el payload JSON para crear estos casos extremos y asegurarte de que tu servidor responde con los códigos de estado HTTP correctos.

Gestión de marcas de tiempo y claims

Los JSON Web Tokens utilizan campos específicos, conocidos como claims, para transmitir información sobre el ciclo de vida del token y el usuario al que representa. Los claims de tiempo más comunes son iat (fecha de emisión) y exp (fecha de expiración). Ambos claims requieren una marca de tiempo Unix, que es el número de segundos transcurridos desde el 1 de enero de 1970.

Calcular estas marcas de tiempo manualmente puede ser tedioso durante las pruebas. Para acelerar tu flujo de trabajo, esta herramienta incluye botones de acción rápida sobre el editor del payload.

  • Al hacer clic en iat = now se inyecta o actualiza al instante el campo iat con la hora Unix actual.
  • Al hacer clic en exp = +1h o exp = +24h se calcula la marca de tiempo futura y se actualiza el campo exp en consecuencia.

Esto garantiza que los tokens generados sean válidos de inmediato y no sean rechazados prematuramente por la lógica de validación de tiempo de tu servidor.

Manejo de secretos en Base64

Un problema frecuente al firmar un JWT online es la codificación de la clave secreta. Muchos sistemas backend y tutoriales recomiendan generar un array de bytes seguro y aleatorio para tu secreto HMAC y guardarlo como una cadena Base64 en tus variables de entorno.

Si tu servidor decodifica esta cadena Base64 a bytes sin procesar antes de firmar o verificar el token, pegar la cadena Base64 directamente en un generador estándar producirá una firma inválida. El generador tratará los caracteres Base64 como texto plano, lo que causará una discrepancia.

Para solucionarlo, simplemente marca la casilla El secreto está codificado en Base64. La herramienta decodificará tu cadena secreta a sus bytes originales antes de aplicar el hash HMAC, asegurando que la firma resultante coincida perfectamente con tu entorno backend.

Entender la estructura del JWT

Cuando generas un token, el resultado se muestra en un formato codificado por colores para ayudarte a entender su estructura. Un JWT estándar consta de tres partes separadas por puntos (.):

  1. Encabezado (Rojo): Contiene los metadatos del token, principalmente el algoritmo de firma (por ejemplo, {"alg":"HS256","typ":"JWT"}). Se genera automáticamente según el algoritmo que elijas y se codifica en Base64-URL.
  2. Payload (Azul): Tus datos JSON reales, también codificados en Base64-URL. Cualquier persona que intercepte el token puede leer esta parte fácilmente, por lo que nunca debes incluir contraseñas ni datos muy sensibles en el payload.
  3. Firma (Verde): El hash criptográfico del encabezado y el payload codificados, firmado con tu clave secreta. Esto garantiza que el token no ha sido alterado en tránsito.

Si ya tienes un token y quieres ver su contenido sin la clave secreta, puedes pegarlo en nuestro Decodificador JWT para inspeccionar el encabezado y el payload de forma segura.

Preguntas frecuentes

¿Qué algoritmos admite esta herramienta?
Esta herramienta admite actualmente algoritmos basados en HMAC: HS256 (HMAC con SHA-256), HS384 y HS512. Son algoritmos simétricos, lo que significa que se utiliza la misma clave secreta para firmar y verificar el token.
¿Se envía mi clave secreta a un servidor?
No. Toda la firma criptográfica se realiza de forma local en tu navegador mediante la Web Crypto API. Tu payload JSON y tu clave secreta nunca salen de tu dispositivo, por lo que es una forma segura de generar tokens para pruebas.
¿Para qué sirve la casilla Base64?
En muchos frameworks de backend, el secreto del JWT se almacena como una cadena codificada en Base64 en lugar de texto plano. Al marcar esta casilla, la entrada se decodifica en bytes sin procesar antes de aplicar el algoritmo HMAC, lo que garantiza que la firma generada coincida exactamente con la que espera tu servidor.
¿Cómo funcionan los botones de tiempo?
Los botones para iat (fecha de emisión) y exp (fecha de expiración) insertan marcas de tiempo Unix estándar (el número de segundos desde el 1 de enero de 1970) en tu payload JSON. Esto te evita tener que buscar o calcular manualmente el tiempo epoch actual.
¿Por qué mi token no es válido al intentar verificarlo en mi servidor?
Las causas más comunes son una clave secreta incorrecta, un algoritmo erróneo o una diferencia en la codificación del secreto. Asegúrate de usar exactamente la misma cadena secreta y comprueba si tu servidor requiere que el secreto se decodifique desde Base64 antes de firmarlo.