Saltar al contenido
SPCXTools

Decodificador JWT

Decodifica JSON Web Tokens, comprueba la caducidad y verifica firmas HMAC — de forma privada, en tu navegador.

Funciona en local: los archivos no salen de tu dispositivo

Cargando herramienta…

Cómo usar Decodificador JWT

  1. 1Pega un JWT (tres partes Base64URL separadas por puntos) en el campo Token, o haz clic en Cargar ejemplo.
  2. 2Lee la Cabecera y el Payload decodificados como JSON formateado.
  3. 3Comprueba la línea de estado para ver si el token es válido, ha caducado o aún no es válido; las notificaciones de tiempo se muestran como fechas legibles.
  4. 4Para tokens HS256, HS384 o HS512, introduce el secreto para verificar la firma localmente.

Decodificar JSON Web Tokens

Un JSON Web Token (JWT) es una cadena compacta que se usa para transmitir información de identidad y permisos entre sistemas, normalmente como una cabecera Authorization: Bearer después de iniciar sesión. Parece texto aleatorio, pero son tres partes codificadas en Base64URL: una cabecera, un payload de notificaciones y una firma. Este decodificador de JWT divide el token, decodifica las dos primeras partes en JSON legible y explica las notificaciones importantes. La decodificación y la verificación se realizan localmente, por lo que tu token nunca se transmite.

Características

  • Cabecera y payload decodificados y con formato legible, cada uno con un botón para copiar.
  • Explicación de las notificaciones de tiempo: iat, nbf, exp y auth_time se convierten de segundos de la época Unix a fechas en tu zona horaria.
  • Comprobación de caducidad que te indica de un vistazo si el token ha caducado o todavía no está activo.
  • Verificación de firmas HMAC para HS256, HS384 y HS512 usando la Web Crypto API de tu navegador.
  • Funciona sin conexión una vez cargada la página; no se envía ningún dato.

Cuándo usarlo

Depurar la autenticación. Cuando una solicitud falla con un error 401 Unauthorized, decodifica el token para comprobar si ha caducado, si se emitió para la audiencia (aud) correcta o si contiene los roles y scopes esperados.

Desarrollar y probar API. Verifica que tu servidor incluye en el token las notificaciones que esperas, con las fechas de caducidad correctas, antes de desplegar.

Aprender cómo funcionan OAuth y OpenID Connect. Los tokens de ID y los tokens de acceso de los proveedores de identidad suelen ser JWT. Decodificar un token de prueba muestra qué información comparte el proveedor sobre un usuario.

Anatomía de un JWT

header.payload.signature

  • Cabecera — el tipo de token y el algoritmo de firma, por ejemplo, {"alg":"HS256","typ":"JWT"}.
  • Payload — las notificaciones. Las notificaciones registradas incluyen iss (emisor), sub (sujeto, normalmente el ID de usuario), aud (audiencia), exp, nbf, iat y jti (ID del token). Las aplicaciones añaden notificaciones personalizadas como name o role.
  • Firma — se crea firmando header.payload con un secreto (HMAC) o una clave privada (RSA, ECDSA, EdDSA). Si alguien cambia un solo carácter de la cabecera o del payload, la firma deja de coincidir.

Como el payload solo está codificado, nunca incluyas secretos como contraseñas en un JWT. Para decodificar otros datos en Base64, usa la herramienta Base64; para inspeccionar cualquier marca de tiempo, usa el Conversor de Timestamp Unix.

Preguntas frecuentes

¿Es seguro pegar un token real aquí?
El token se decodifica y verifica completamente en tu navegador y nunca se envía a nuestro servidor. Aun así, un JWT es una credencial: trátalo como una contraseña, evita compartir tokens de producción y usa tokens de prueba siempre que sea posible.
¿Decodificar un JWT demuestra que es auténtico?
No. Cualquiera puede decodificar la cabecera y el payload porque solo están codificados en Base64URL, no cifrados. Un token solo es fiable si su firma se verifica con la clave correcta. Para los tokens HMAC, puedes verificarla aquí introduciendo el secreto; los tokens RSA y ECDSA deben verificarse con la clave pública del emisor en tu aplicación.
¿Qué significan exp, iat y nbf?
exp (expiration time) es cuándo deja de ser válido el token, iat (issued at) es cuándo se creó y nbf (not before) es el momento más temprano en que puede usarse. Los tres son marcas de tiempo Unix en segundos; el decodificador los convierte a fechas en tu zona horaria.
¿Por qué dice que el token no es válido?
Un JWT debe tener exactamente tres partes separadas por puntos, y las dos primeras deben ser JSON codificado en Base64URL. Comprueba que has copiado el token completo sin el prefijo Bearer , comillas ni saltos de línea.
¿Puede decodificar tokens cifrados (JWE)?
No. Los JWT cifrados (JWE) tienen cinco partes y su payload solo se puede leer con la clave de descifrado. Esta herramienta maneja tokens firmados (JWS), que es lo que usan la mayoría de las API.