Firma JWT HMAC
JWT = Base64URL(encabezado) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(secreto, entrada de firma))
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.
Para pruebas y desarrollo: no uses un secreto de producción en un dispositivo compartido o no fiable.
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.
Edita las dos zonas JSON prerrellenadas o importa un archivo .json. Añade tus claims: sub, iss, aud, exp, roles o campos personalizados.
Selecciona HS256, HS384 o HS512 y escribe el secreto compartido. Los campos alg y typ de la cabecera se actualizan automáticamente.
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.
JWT = Base64URL(encabezado) + '.' + Base64URL(carga útil) + '.' + Base64URL(HMAC(secreto, entrada de firma))
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.
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.
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.
Entrada
Algoritmo: HS256; Encabezado JSON: {"alg":"HS256","typ":"JWT"}; Carga útil JSON: {"sub":"1234567890","name":"John Doe","iat":1516239022}; Secreto: clave-de-pruebaResultado
JWT firmado: tres segmentos Base64URL separados por puntos; la firma se calcula mediante HMAC-SHA256.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.
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.
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.
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ó.
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.
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.
Decodifica un JWT para leer su cabecera, su payload, sus claims y sus fechas de expiración.
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.
Aprende qué contiene un JWT, por qué decodificar no equivale a verificar y cómo funcionan exp, nbf, iss y aud.
Comprende cómo encajan OAuth 2.0, PKCE, JWT, JWK y JWKS: autorización, tokens, claves públicas y verificación.
Comprende HSTS, CSP, X-Content-Type-Options, Referrer-Policy y Permissions-Policy y cómo verificar las cabeceras realmente enviadas.
Comprende las capas que protegen un sitio web: HTTPS, cabeceras HTTP, CSP, SRI, autenticación, contraseñas e integridad.