JWT Decoder

Decodificador JWT

Decodifica e inspecciona JSON Web Tokens al instante — visualiza header, payload, verifica firmas HMAC y genera código JWT en PHP, JavaScript, Python y Java.

Actualizado mayo de 2026

Revisado por Rafael Duarte

ENCODED
DECODED

Paste a JWT token on the left to decode it

GENERATE JWT CODE
Language
Algorithm
javascript
 1const jwt = require('jsonwebtoken');
 2
 3const secretKey = 'your-256-bit-secret';
 4
 5const payload = {
 6  sub: '1234567890',
 7  name: 'John Doe',
 8  iat: Math.floor(Date.now() / 1000)
 9};
10
11const token = jwt.sign(payload, secretKey, { algorithm: 'HS256' });
12console.log(token);
13
14// To verify:
15const decoded = jwt.verify(token, secretKey, { algorithms: ['HS256'] });
16console.log(decoded);

Cómo decodificar un JWT

Decodifica, verifica la firma y genera código en segundos

1. Pega el token

Las tres partes se colorean al instante — header en rosa, payload en morado, firma en cian.

2. Revisa las claims

`iat`, `exp` y `nbf` se convierten automáticamente a fechas legibles — detecta un token vencido de un vistazo.

3. Verifica la firma

Para HS256/384/512, ingresa la clave secreta y recibe una insignia verde o roja al instante.

Qué hace este decodificador JWT

Un debugger JWT completo, no solo un visor de payload

Decodificación instantánea

Header, payload y firma resaltados por color, sin necesitar ninguna clave para leerlos.

Timestamps legibles

exp, iat y nbf se convierten a fecha ISO automáticamente, sin calcular Unix a mano.

Verificación HMAC en el navegador

HS256, HS384 y HS512 se verifican localmente con tu clave secreta, vía Web Crypto API.

Generador de código

Snippets listos en JavaScript, PHP, Python y Java para firmar tokens en tu propio proyecto.

Plantillas HMAC y RSA

El generador cubre HS256/384/512 con clave secreta y RS256/384/512 con par de claves pública/privada.

Atajo de teclado

Presiona Shift+Enter en cualquier parte de la página para copiar el payload sin tocar el mouse.

Ejemplos de decodificación

Qué esperar en algunos casos reales

Situación
Qué muestra la herramienta
Token de referencia de jwt.io
`alg: HS256`, `sub`, `name`, `iat` — sin `exp` definido
Token vencido (`exp` en el pasado)
Fecha de expiración junto al timestamp Unix crudo
Token mal formado (2 partes)
Error: "Formato esperado: header.payload.signature"
Token con `alg: none`
Se decodifica igual, verificación marcada como "no soportado"
Token con `alg: RS256`
Se decodifica sin problema; la verificación pide clave pública, ya que solo HS256/384/512 se comprueban en el navegador

Cuándo vas a usar esta herramienta

Los escenarios más comunes entre quienes trabajan con JWT

Depurar un 401 Unauthorized

Revisa exp, aud y el algoritmo antes de tocar una sola línea de código.

Auditoría de seguridad

Confirma que ningún dato sensible se está filtrando en las claims del payload.

Pruebas de integración

Verifica claims correctas, TTL (exp menos iat) y algoritmo antes de escribir los tests.

Verificación de firma entre servicios

Confirma que un token fue firmado con el secreto esperado antes de aceptarlo entre microservicios.

Aprender la estructura de un JWT

Vista dividida y coloreada de las tres partes, sin necesidad de leer la RFC primero.

Generar código de firma

Snippets listos evitan buscar el método correcto en la documentación de cada librería.

Errores comunes con JWT

Confundir decodificar con verificar

Decodificar solo lee el payload sin comprobar la firma. Un token puede decodificarse perfecto y aun así estar falsificado.

Guardar el JWT en localStorage

Cualquier JavaScript que corra en la página puede leerlo — una vulnerabilidad XSS roba todos los tokens activos.

No validar la claim `exp`

Un token robado queda válido indefinidamente. 15 minutos es la buena práctica de 2026, combinado con un refresh token.

Meter datos sensibles en el payload

Es Base64URL, no cifrado. Nunca pongas contraseña, número de tarjeta o datos de identidad en un payload JWT.

Aceptar `alg: none` en producción

Un token con alg: none no tiene firma alguna. Las librerías modernas lo rechazan por defecto, pero vale auditar validaciones JWT manuales escritas antes de 2020.

Esperar verificar RS256 solo con el token

Los algoritmos asimétricos (RS/ES) necesitan la clave pública para verificar — el navegador no puede obtenerla por sí solo a partir del token.

Por qué usar este decodificador JWT

Más allá de la decodificación básica, verifica firmas HMAC directamente en tu navegador y genera código listo en cuatro lenguajes — un debugger completo, no solo un visor de payload.

Todo corre localmente vía Web Crypto API. Tu token y tu clave secreta nunca salen del dispositivo, ni siquiera cuando verificas una firma.

Es gratis, sin registro y sin límite de tokens — pega los que necesites. Shift+Enter copia el payload decodificado directo al portapapeles, sin soltar el teclado.

Preguntas frecuentes

El payload solo está codificado en Base64URL, no cifrado. Cualquiera que tenga el string del token puede decodificarlo y leerlo sin clave. La firma solo prueba quién lo emitió — no oculta el contenido.

Referencias

Artículo relacionado

OAuth 2.0 explicado sem complicação

Herramientas relacionadas