JWT Generator
Understand JWT Generator
Construye un JSON Web Token a partir de una cabecera y un payload que usted proporciona y lo firma con HMAC-SHA-256, 384 o 512 usando su secreto, por completo en su navegador.
How it works
El JSON de la cabecera y el del payload se codifican en Base64URL y se unen con un punto, y esa cadena es la entrada de firma. WebCrypto calcula un HMAC sobre ella con su secreto, y el resultado se codifica en Base64URL y se añade como tercer segmento. La verificación es la operación idéntica: un servidor recalcula el HMAC sobre los dos primeros segmentos y compara. Como HMAC es simétrico, cualquiera que pueda verificar un token también puede emitirlo.
When to use it
- Producir un token de prueba con claims concretos para ejercitar una ruta de autorización.
- Reproducir un token emitido por un proveedor de identidad, para aislar si el fallo está en la emisión o en la verificación.
- Comprobar que su código de verificación rechaza realmente un exp caducado, un aud incorrecto o un nbf futuro.
- Crear un token de fixture para una prueba de integración donde el secreto de firma es un valor de prueba conocido.
- Ver exactamente qué bytes se firman, cuando una implementación de firma hecha a mano discrepa de una biblioteca.
Watch out for
- Un token es tan fiable como su secreto. No pegue un secreto de firma de producción en ninguna página web: dé por quemado un secreto que haya pasado por un navegador y rótelo.
- La seguridad de HS256 la limita la clave, no el algoritmo. Un secreto corto o de diccionario se rompe fuera de línea a partir de un único token capturado, porque el propio token da al atacante todo lo necesario para probar candidatos. Use al menos 32 bytes aleatorios.
- exp, iat y nbf son segundos desde el epoch. Un valor en milisegundos en exp produce un token que en la práctica nunca caduca, y los verificadores conformes lo aceptarán sin protestar.
- Firmar no es cifrar. Todos los claims del payload son legibles para cualquiera que tenga el token; un JWT firmado protege los claims frente a la modificación, nunca frente a la lectura.
Not the right tool for: Emitir tokens que su sistema de producción vaya a aceptar. Fírmelos dentro de su servicio y prefiera un algoritmo asimétrico como RS256 o EdDSA, para que quienes verifican tengan solo una clave pública y no puedan falsificar tokens propios.
Frequently Asked Questions
¿Cómo genero un token JWT?
Elija un algoritmo, edite el JSON del payload, añada claims como iss, sub, aud y una caducidad, introduzca su secreto de firma y pulse Firmar JWT. La cabecera, el payload y la firma HMAC se codifican en base64url sin relleno y se unen con puntos.
¿Es seguro introducir aquí mi secreto de JWT?
El secreto lo usa crypto.subtle.sign dentro de la pestaña de su navegador. Nunca se envía a un servidor, nunca se registra y nunca se almacena. Aun así, trate con cuidado un secreto de firma de producción: para pruebas, genere un secreto desechable en lugar de pegar el real.
¿Por qué no se ofrecen RS256 y ES256?
Esos algoritmos firman con una clave privada, y pegar una clave privada de producción en cualquier página web es una costumbre que no conviene enseñar. Aquí solo se ofrecen algoritmos HMAC. El valor de alg "none" también está ausente: es el clásico ataque de evasión de JWT, no una función.
How to Use JWT Generator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.