Codificador JWT
Crea y firma JWT con HS256, HS384 o HS512 en tu navegador. Edita el JSON del header y del payload; se conservan el orden de claims y campos como kid.
Tus datos de entrada y archivos no salen del navegador
Encabezado, carga útil y firma
Corrija el JSON del encabezado y de la carga útil: el token firmado aparecerá aquí mientras escribe.
En esta página
Genera un JSON Web Token firmado para probar APIs y flujos de autenticación: edita el JSON del header y del payload, elige HS256, HS384 o HS512, escribe un secreto y copia el token, que se actualiza con cada pulsación.
Funcionalidad detallada
El header y el payload deben ser objetos JSON; un JSON inválido o algo que no sea un objeto, como un array, se señala bajo su campo y no se genera token. El JSON se compacta (sin espacios) y se codifica en base64url sin relleno, conservando el orden de tus claims y los campos extra del header como kid o cty. El valor alg del header se sustituye por el algoritmo elegido en la lista o, si falta, se añade en primer lugar.
La firma HMAC (SHA-256, SHA-384 o SHA-512) la calcula un módulo criptográfico de Rust compilado a WebAssembly; el secreto se usa como texto UTF-8. Solo hay algoritmos HMAC simétricos: aquí no se pueden crear tokens RS256 o ES256, que requieren una clave privada. Un secreto vacío también genera un token, firmado con una clave vacía, que solo sirve para experimentar.
El secreto y los claims se quedan en la página y no se guardan. La herramienta no añade iat ni exp por su cuenta: escribe tú los valores NumericDate (tiempo Unix en segundos) en el payload.
Ejemplos prácticos
Vector de prueba de jwt.io: el header por defecto {"alg":"HS256","typ":"JWT"} y el payload {"sub":"1234567890","name":"John Doe","iat":1516239022} con el secreto your-256-bit-secret dan un token que termina en SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c, igual que en jwt.io.
ID de clave y caducidad: header {"alg":"HS256","typ":"JWT","kid":"key-2026"}, payload {"sub":"42","role":"admin","exp":1767225600} y algoritmo HS384: el header codificado pasa a ser {"alg":"HS384","typ":"JWT","kid":"key-2026"} con el orden de campos intacto, y la firma tiene 64 caracteres.
No es un objeto: un payload [1,2] muestra «Debe ser un objeto JSON» bajo el campo y el token se borra.
Cómo usar esta herramienta
Edita el header
Ajusta el JSON en Encabezado; añade
kidsi tu verificador lo necesita;algse toma de la lista de algoritmos.Escribe los claims
Pon tus claims (
sub,role,exp…) en Carga útil como objeto JSON.Elige algoritmo y secreto
Selecciona HS256, HS384 o HS512 en Algoritmo y escribe el secreto compartido en Clave secreta.
Copia el token
El token de Token codificado se actualiza con cada cambio; pulsa Copiar token para copiarlo.
Consejos y mejores prácticas
- Usa un secreto aleatorio al menos tan largo como el hash: 32 bytes para HS256, 48 para HS384, 64 para HS512.
exp,nbfeiatvan en segundos, no en milisegundos:1767225600, no1767225600000.- Cuenta cada carácter del secreto, incluido un espacio o salto de línea al final.
- El payload solo está codificado en base64url, no cifrado: cualquiera con el token puede leerlo.
- Comprueba el resultado en el decodificador JWT con el mismo secreto.