Herramientas Cripto·7 min

Cómo decodificar tokens JWT: guía para desarrolladores

Aprende a decodificar tokens JWT para inspeccionar header, payload y claims. Incluye decodificador gratuito en el navegador.

¿Qué es un JWT y por qué decodificarlo?

Un JSON Web Token (JWT) es un formato de token compacto y seguro para URL, usado para transmitir claims entre dos partes, normalmente un cliente y un servidor. Un JWT consta de tres partes codificadas en Base64URL separadas por puntos: el header, el payload y la signature.

Decodificar un JWT es leer el header y el payload para entender qué claims lleva. Es esencial para depurar flujos de autenticación, inspeccionar tokens en respuestas de API o simplemente entender qué datos se envían en tu nombre. Es importante saber que decodificar no verifica la firma: para eso necesitas la clave secreta o pública de la parte que emitió el token.

Casos de uso comunes

  • Depurar flujos de auth: inspeccionar tokens devueltos por APIs de login
  • Auditar claims: comprobar expiración, emisor, audiencia y campos personalizados
  • Desarrollo local: leer tokens guardados en localStorage o cookies
  • Aprendizaje: entender cómo funciona la autenticación en apps web modernas
  • Revisiones de seguridad: detectar datos sensibles incluidos por error en tokens

Método 1: Usa el decodificador JWT gratuito de UtilBoxx (Recomendado)

Nuestro decodificador JWT analiza cualquier JWT y muestra su header y payload en un formato legible, con marcas de tiempo convertidas a fechas humanas. Así se usa:

  1. Ve a utilboxx.com/es/tools/crypto/jwt
  2. Pega tu JWT en el campo de entrada
  3. El header y el payload se decodifican al instante
  4. Comprueba la expiración, el emitido en, y otros claims
  5. Copia cualquier sección con un clic

Por qué funciona este método:

  • Se ejecuta por completo en tu navegador — el token nunca sale de tu dispositivo
  • Formatea JSON automáticamente para legibilidad
  • Resalta tokens caducados y próximos a caducar
  • Adaptado a móvil con campos de texto grandes
  • 100% gratis, sin registro, sin seguimiento

Método 2: Usa jwt.io

El sitio jwt.io (de Auth0) es un playground JWT popular. Pega un token y decodifica header y payload, con la opción de verificar la firma si proporcionas la clave secreta. Es muy usado y soporta algoritmos de muchas librerías.

Método 3: Decodifica en tu lenguaje favorito

En Node.js, con la librería `jsonwebtoken`:

```javascript const jwt = require('jsonwebtoken'); const decoded = jwt.decode('eyJhbGciOi...', { complete: true }); console.log(decoded.header); console.log(decoded.payload); ```

En Python, con la librería `PyJWT`:

```python import jwt payload = jwt.decode("eyJhbGciOi...", options={"verify_signature": False}) print(payload) ```

La opción `verify_signature: False` es clave: le indica a la librería que decodifique sin comprobar la firma, justo lo que quieres para inspeccionar.

Preguntas frecuentes

¿Es seguro decodificar un JWT en línea?

Decodificar es seguro porque el contenido no es secreto: solo está codificado en Base64URL, no cifrado. Aun así, no pegues tokens de producción en servicios no confiables si pudieran contener datos sensibles. El decodificador de UtilBoxx se ejecuta localmente en tu navegador, así que el token nunca sale de tu dispositivo.

¿Se puede confiar en un JWT decodificado?

No. Decodificar muestra los claims pero no verifica la firma. Un token puede decodificarse y aun así no ser auténtico. Verifica siempre la firma con la clave secreta o pública del emisor antes de confiar en cualquier claim.

¿Cuál es la diferencia entre decodificar y verificar?

Decodificar lee el contenido. Verificar usa una clave criptográfica para confirmar que el token fue emitido por una parte confiable y que no fue alterado. Para inspección local basta con decodificar. Para decisiones de seguridad se requiere verificar.

¿Qué claims se incluyen normalmente en un JWT?

Los claims estándar incluyen `iss` (emisor), `sub` (sujeto), `aud` (audiencia), `exp` (expiración), `iat` (emitido en) y `nbf` (no antes de). Los claims personalizados varían según la aplicación, por ejemplo `role`, `email` o `user_id`.

Conclusión

Decodificar JWTs es una tarea habitual para los desarrolladores. Para una experiencia rápida, privada y en el navegador, el decodificador JWT de UtilBoxx es la herramienta más fácil de tener en tus marcadores.