Codificación
JWT Encoder/Decoder
Codificación y decodificación de tokens JWT — encabezado, payload, firma HMAC y campos estándar.
Los ejemplos firmados (todos excepto none) requieren HTTPS — la página está abierta sin HTTPS.
Para RS/PS/ES, la clave se genera automática y temporalmente — solo para demostración, no se puede reutilizar.
Los ejemplos firmados (todos excepto none) requieren HTTPS — la página está abierta sin HTTPS.
Claims
A JWT (JSON Web Token) is a compact format for transmitting signed data, made of three dot-separated parts: a header, a payload, and a signature. This tool decodes any JWT and shows all three parts, and can also build a new token signed with HMAC.
Decoding does not verify the signature — reading a token's contents needs no secret key. Verifying the signature only matters when you need to trust the token as genuine.
How to use it
- Decode: paste a JWT and the tool splits it into header, payload, and signature, highlighting standard claims like exp, iat, and sub.
- Encode: fill in the header and payload, provide a secret, and get a signed HMAC token (HS256/HS384/HS512) back.
- Check expiry: the exp claim is shown as a normal date, so you can immediately tell if a token has expired.
Common uses
- Debugging authentication issues by inspecting exactly what a request's token contains.
- Checking which claims (roles, permissions, expiry) your backend issues.
- Generating a test token for local development without running an auth server.
Things to keep in mind
A JWT is not encrypted, only Base64URL-encoded — anyone can read the payload. Never put passwords or other secrets in it.
The signature protects against tampering, not against being read. For confidentiality you need extra encryption (JWE) or an HTTPS transport.
Artículo sobre esta herramienta: JWT: la estructura del token y qué significa "decodificar" un JWT
Preguntas frecuentes
¿Decodificar un JWT verifica que sea auténtico?
No. Decodificar solo separa y muestra el header y el payload, que están en Base64 pero no cifrados. Para comprobar que la firma es válida y que el token no fue alterado hace falta conocer el secreto o la clave pública usada para firmarlo.
¿Cualquiera puede leer los datos dentro de un JWT?
Sí, el header y el payload son solo Base64, no están cifrados, así que cualquiera con el token puede leer los claims. Por eso nunca hay que poner información sensible dentro de un JWT.
¿Se envía mi token o mi secreto a algún servidor?
No, todo el proceso de codificación, decodificación y firma con HMAC ocurre localmente en tu navegador mediante Web Crypto API.
¿En qué consiste el ataque de sustituir el algoritmo por "none"?
Si el backend confía ingenuamente en el campo alg del encabezado del token, un atacante puede sustituirlo por none, eliminar la firma, y un token con datos arbitrarios superará la verificación. Las bibliotecas robustas exigen indicar explícitamente el algoritmo esperado al verificar.
¿Por qué no conviene guardar un JWT en localStorage para sesiones sensibles?
localStorage es accesible desde cualquier código JavaScript de la página, así que es vulnerable a XSS: un script malicioso podría robar el token. Para tokens de sesión es más seguro usar cookies httpOnly, inaccesibles desde JavaScript.