Ir al contenido principal
Bethemesh

Codificador JWT

Genera un JSON Web Token firmado con HMAC para tus pruebas: escribe la cabecera y el payload en JSON, elige HS256, HS384 o HS512 y tu secreto; alg y typ se rellenan automáticamente.

  • Portapapeles

Integrar este widget

Personaliza el aspecto, comprueba la vista previa y copia el código.

Vista previa

Tipo de código de integración

Código para copiar

Se adapta a tu página y Bethemesh ajusta su tamaño automáticamente.

Algoritmo

Para pruebas y desarrollo: no uses un secreto de producción en un dispositivo compartido o no fiable.

¿Te ha resultado útil esta herramienta?

¿Cómo funciona esta herramienta?

El codificador JWT crea un token firmado con HMAC a partir de una cabecera, un payload JSON y un secreto compartido. Está pensado para desarrolladores y testers que necesitan un token a medida para llamar a una API local, escribir una prueba automatizada o reproducir un caso límite (token expirado, rol ausente). Está pensado para desarrollo y pruebas, no para emitir tokens de producción.

La herramienta comprueba que la cabecera y el payload son objetos JSON válidos y después fija en la cabecera alg con el algoritmo elegido y typ con JWT. Cada objeto se serializa y se codifica en Base64URL (RFC 4648, sin relleno =), y los dos segmentos se unen con un punto. Por ejemplo, la cabecera {"alg":"HS256","typ":"JWT"} se convierte en eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

La firma es un HMAC calculado sobre la cadena «cabecera.payload» con SHA-256, SHA-384 o SHA-512 según el algoritmo (RFC 7518, sección 3.2), mediante la Web Crypto API. El resultado, codificado en Base64URL, forma el tercer segmento del JWT (RFC 7519). La RFC 7518 exige una clave al menos tan larga como la salida del hash: 256 bits (32 bytes) para HS256, 384 bits para HS384 y 512 bits para HS512. Las fechas exp, iat y nbf del payload deben ir en segundos Unix, por ejemplo "exp": 1767225600 para el 1 de enero de 2026 a las 00:00 UTC.

Cómo utilizar esta herramienta

  1. Escribe la cabecera y el payload

    Edita las dos zonas JSON prerrellenadas o importa un archivo .json. Añade tus claims: sub, iss, aud, exp, roles o campos personalizados.

  2. Elige el algoritmo y el secreto

    Selecciona HS256, HS384 o HS512 y escribe el secreto compartido. Los campos alg y typ de la cabecera se actualizan automáticamente.

  3. Genera y copia el JWT

    Pulsa Generar: aparece el token firmado y puedes copiarlo. Se muestra un error si el JSON no es válido o si el secreto está vacío.

Firma JWT HMAC

Firma JWT HMAC

JWT = Base64URL(encabezado) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(secreto, entrada de firma))

Casos de uso

Probar una API protegida en local

Crea un token firmado con el secreto de tu entorno de desarrollo para llamar a una ruta protegida con curl o Postman, sin pasar por todo el flujo de inicio de sesión.

Reproducir un token expirado o sin rol

Pon exp en el pasado o quita un claim roles para comprobar que tu middleware devuelve de verdad un error 401 o 403 en estos casos límite.

Preparar fixtures de pruebas

Genera tokens estables para tus pruebas de integración y compruébalos después con el verificador JWT para asegurarte de que el secreto y los claims coinciden con lo que espera el servidor.

Ejemplos

JWT firmado con HS256

Entrada

Algoritmo: HS256; Encabezado JSON: {"alg":"HS256","typ":"JWT"}; Carga útil JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Secreto: clave-de-prueba

Resultado

JWT firmado: tres segmentos Base64URL separados por puntos; la firma se calcula mediante HMAC-SHA256.

Consejos y buenas prácticas

  • Usa un secreto de al menos 32 bytes aleatorios para HS256: una palabra corta como «secret» hace que el token se pueda romper por fuerza bruta sin conexión.
  • Escribe exp e iat en segundos y no en milisegundos: Date.now() en JavaScript devuelve milisegundos y da una fecha en torno al año 58.000.
  • No pongas datos confidenciales en el payload: solo está codificado en Base64URL y cualquiera que tenga el token puede leerlo.

Fuentes y referencias

Preguntas frecuentes

¿Cómo se crea un JWT?

Un JWT se construye codificando en Base64URL una cabecera JSON y un payload JSON y firmando después la cadena «cabecera.payload» con el algoritmo elegido. Aquí basta con escribir los dos objetos y un secreto y pulsar Generar. En producción lo hace tu servidor de autenticación o una biblioteca como jose o jsonwebtoken.

¿Qué longitud debe tener un secreto HS256?

La RFC 7518 exige una clave de al menos 256 bits, es decir, 32 bytes, para HS256; 48 bytes para HS384 y 64 bytes para HS512. Un secreto aleatorio de ese tamaño, por ejemplo creado con un generador de tokens seguros, impide los ataques de diccionario sobre la firma.

¿Por qué solo HS256, HS384 y HS512?

Estos algoritmos HMAC solo necesitan un secreto compartido, lo que basta para crear tokens de prueba. RS256 o ES256 requerirían una clave privada, que no debería manejarse en una herramienta web. Si varias partes deben verificar tus tokens sin poder emitirlos, usa un algoritmo asimétrico en el servidor.

¿Cómo añado una fecha de expiración a un JWT?

Añade el claim exp al payload con una marca de tiempo Unix en segundos, por ejemplo "exp": 1767225600. Un conversor de timestamp te ayuda a calcular ese valor a partir de una fecha. Plantéate también iat para indicar cuándo se emitió.

¿Puedo usar estos tokens en producción?

No, la herramienta está pensada para desarrollo y pruebas. En producción, los tokens debe emitirlos un servidor que mantenga el secreto fuera del alcance de los usuarios, aplique vidas útiles cortas y gestione la rotación de claves.

¿Se envía mi secreto a algún sitio?

No. La codificación y la firma HMAC se calculan en tu navegador con la Web Crypto API, sin ninguna petición de red. Aun así, evita escribir un secreto de producción, porque cualquiera que lo conozca puede firmar tokens que tu API aceptará.

Workflow recomendado

Descubre herramientas que encajan antes, después o como complemento de esta.

Funciona bien con

Decodifica un JWT para leer su cabecera, su payload, sus claims y sus fechas de expiración.

Seguridad y privacidadDestacadaUsar esta herramienta

Siguiente paso

Verifica la firma de un JWT con un secreto HMAC o una clave pública JWK, JWKS o PEM, y comprueba exp, nbf, iss y aud.

Seguridad y privacidadUsar esta herramienta