Decodificador JWT

Decodifica tokens JWT localmente en tu navegador para inspeccionar cabeceras, claims y expiración

¿Qué es un Decodificador JWT?

Un decodificador JWT (JSON Web Token) te permite inspeccionar el contenido de un token sin necesitar la clave secreta usada para firmarlo. Los JWT consisten en tres partes separadas por puntos: header, payload y signature, cada una codificada en Base64URL. Esta herramienta decodifica las dos primeras partes para revelar los metadatos del algoritmo y los claims del usuario, todo procesado localmente en tu navegador sin que el token abandone tu dispositivo.

Estructura de un JSON Web Token

Un JWT tiene la forma xxxxx.yyyyy.zzzzz donde cada parte está codificada en Base64URL:

  • Header (xxxxx): Contiene el tipo de token (siempre "JWT") y el algoritmo de firma usado (HS256, RS256, ES256, etc.). Ejemplo: {"alg": "HS256", "typ": "JWT"}.
  • Payload (yyyyy): Contiene los claims — datos del usuario y metadatos del token como expiración (exp), emisor (iss), y sujeto (sub).
  • Signature (zzzzz): Es la firma criptográfica que verifica que el token no fue alterado. Se calcula firmando header+payload con la clave secreta o privada.

Decodificar un JWT NO verifica su firma — solo revela su contenido. Para verificar autenticidad, necesitas la clave secreta o pública correspondiente al algoritmo declarado en el header.

Claims Estándar del JWT (RFC 7519)

El RFC 7519 define un conjunto de claims registrados que son opcionales pero recomendados para interoperabilidad entre sistemas:

  • iss (Issuer): Identifica quién emitió el token. Ejemplo: "auth.example.com".
  • sub (Subject): Identifica al sujeto del token. Normalmente un user ID.
  • aud (Audience): Identifica los destinatarios previstos del token.
  • exp (Expiration Time): Timestamp Unix después del cual el token es inválido.
  • nbf (Not Before): Timestamp Unix antes del cual el token no debe aceptarse.
  • iat (Issued At): Timestamp Unix de cuándo se creó el token.
  • jti (JWT ID): Identificador único del token para prevenir reutilización.

Privacidad y Seguridad al Decodificar JWT

Los tokens JWT frecuentemente contienen información sensible: IDs de usuario, emails, roles, permisos, y a veces incluso datos internos del sistema. Decodificarlos en servicios online externos expone esta información a terceros. Esta herramienta procesa todo localmente usando JavaScript del lado del cliente — tu token nunca sale de tu navegador.

Es importante recordar que Base64URL es codificación, NO cifrado. Cualquier persona que intercepte un JWT puede leer su contenido. Por eso, nunca almacenes datos sensibles como contraseñas o números de tarjeta de crédito en el payload de un JWT. Los JWT protegen integridad (mediante la firma), no confidencialidad.

Para auditar la seguridad de tus tokens, usa nuestro JWT Security Auditor que analiza algoritmos vulnerables, expiración excesiva, y datos sensibles expuestos en el payload.

Code Examples

Decodificar un JWT en JavaScript

// Decode JWT payload without verification
function decodeJwtPayload(token) {
  const parts = token.split('.');
  if (parts.length !== 3) throw new Error('Invalid JWT format');
  
  const payload = parts[1];
  const decoded = atob(payload.replace(/-/g, '+').replace(/_/g, '/'));
  return JSON.parse(decoded);
}

const token = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4ifQ.xxx';
console.log(decodeJwtPayload(token));
// { sub: "1234567890", name: "John" }

Standards & Specifications

  • RFC 7519 — Especificación de JSON Web Token (JWT)
  • RFC 7515 — JSON Web Signature (JWS) — cómo se firman los JWT

Preguntas Frecuentes

¿Puedo decodificar un JWT sin la clave secreta?

¡Sí! El header y payload del JWT solo están codificados en Base64URL, no cifrados. Puedes decodificarlos sin la clave.

¿Es seguro decodificar tokens JWT aquí?

Sí. Toda la decodificación ocurre en tu navegador. Tus tokens nunca salen de tu dispositivo.

¿Qué información hay en el payload?

El payload contiene claims: datos del usuario (sub, email), metadatos del token (exp, iss, aud) y claims personalizados (roles, permisos).

¿Decodificar verifica la autenticidad?

No. La decodificación solo revela el contenido. La verificación requiere la clave secreta o pública.