Codificación

JWT Encoder/Decoder

Codificación y decodificación de tokens JWT — encabezado, payload, firma HMAC y campos estándar.

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

Common uses

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.

Artículos: Codificación

Base64: para qué sirve la codificación y cómo funciona

Cómo Base64 convierte datos binarios en texto ASCII y cuándo esto realmente hace falta.

Base32: en qué se diferencia de Base64 y cuándo es más práctico

El alfabeto de Base32, que no distingue mayúsculas, y los casos donde resulta más práctico que Base64.

URL Encode/Decode: el percent-encoding en los enlaces

Cómo los caracteres especiales en direcciones y parámetros se convierten en secuencias %XX.

HTML Entities: cómo mostrar caracteres especiales de forma segura

Por qué hay que escapar los caracteres < > & y cómo esto evita que el marcado se rompa.

Unicode Escape: qué significan las secuencias \uXXXX

De dónde salen las secuencias tipo \u0041 en JSON y cadenas JS, y qué significan.

ROT13 y el cifrado César: sustitución simple de caracteres

Por qué un desplazamiento de 13 letras hace que ROT13 sea su propio inverso, y por qué se sigue usando hoy.

Punycode: cómo funcionan los dominios internacionalizados en el DNS

Cómo un dominio con caracteres no latinos se convierte en una representación ASCII con el prefijo xn--.

Código Morse: cómo el texto se convierte en puntos y rayas

El principio de codificar letras con puntos y rayas, y dónde se usa el código Morse hoy en día.

Data URI: cuándo incrustar imágenes directamente en el código

Cómo un Data URI incrusta el contenido de un archivo directamente en HTML o CSS, y cuándo vale la pena.

Gzip + Base64: comprimir datos para transmitirlos como texto

Por qué los datos binarios comprimidos también se codifican en Base64 antes de meterlos en un campo de texto.

XML Entities: escapar caracteres en documentos XML

Las cinco entidades XML obligatorias sin las cuales el documento se rompe al analizarlo.