Decodificador JWT

Decodifica e inspecciona JSON Web Tokens: cabecera, payload, firma y expiración

La decodificación ocurre en tu navegador. El token nunca se envía ni se guarda.

Cómo decodificar un JWT online

  1. 1

    Pega el token

    Pega el JWT en el cuadro o haz clic en la varita para cargar un ejemplo. El prefijo "Bearer " y los saltos de línea se eliminan automáticamente.

  2. 2

    Lee la cabecera y el payload

    La cabecera muestra el algoritmo (alg) y el tipo (typ); el payload muestra las claims, como sub, iss, aud y datos propios, formateadas como JSON.

  3. 3

    Comprueba las fechas y el estado

    Las claims exp, iat y nbf se convierten en fechas legibles y una insignia indica si el token es válido, está expirado o aún no es válido.

  4. 4

    Verifica la firma (opcional)

    En tokens HS256, HS384 y HS512, escribe el secreto y pulsa Verificar para ver si la firma coincide. Copia cualquier parte con su botón Copiar.

Qué hay dentro de un JWT

Un JSON Web Token son tres cadenas en Base64URL unidas por puntos. La cabecera indica cómo se firmó el token, el payload lleva las claims y la firma permite al servidor comprobar que nadie cambió las dos primeras partes.

El decodificador muestra cada parte con su color para distinguirlas: cabecera en rojo, payload en morado y firma en azul.

  • iss: quién emitió el token
  • sub: el sujeto, normalmente el id del usuario
  • aud: la audiencia a la que va dirigido el token
  • exp: hora de expiración, en segundos desde 1970
  • nbf: el token no es válido antes de esta hora
  • iat: cuándo se emitió el token

Decodificar no es verificar

Cualquiera que tenga un JWT puede leer su contenido, porque Base64URL es una codificación y no un cifrado. Nunca pongas contraseñas ni secretos en el payload. Lo que protege el token es la firma, que solo puede generar quien tiene el secreto o la clave privada.

Esta herramienta comprueba firmas HMAC (HS256, HS384, HS512) cuando escribes el secreto. RS256, ES256 y otros algoritmos de clave pública se decodifican, pero aquí no se verifican.

Expirado, válido o aún no válido

La insignia compara exp y nbf con la hora actual de tu dispositivo. Si el reloj está mal, el resultado también. Los servidores suelen admitir unos segundos de tolerancia, que esta herramienta no aplica.

Un token sin exp nunca expira según sus claims, así que la insignia muestra "Sin expiración".

Privado por diseño

El token se decodifica en tu navegador con JavaScript y la API Web Crypto. Nunca se envía a un servidor ni se guarda, así que es seguro inspeccionar tokens reales. Aun así, trata los tokens activos como contraseñas y evita compartirlos.

Preguntas frecuentes del decodificador JWT

¿Cómo decodifico un JWT?

Pega el token en el cuadro. La cabecera, el payload y la firma aparecen al instante, sin necesidad de botón.

¿Es seguro pegar aquí mi token?

Sí. La decodificación se ejecuta por completo en tu navegador y el token nunca se sube ni se guarda. Aun así, evita compartir tokens de producción.

¿Por qué dice que el token está expirado?

Porque la claim exp es anterior a la hora actual de tu dispositivo. Pide un token nuevo al servicio que lo emitió.

¿Puede verificar la firma?

Sí, para HS256, HS384 y HS512: escribe el secreto y pulsa Verificar. Los tokens firmados con RS256 o ES256 se decodifican, pero no se verifican.

¿Funciona con el prefijo "Bearer "?

Sí. El prefijo "Bearer ", las comillas, los espacios extra y los saltos de línea se eliminan antes de decodificar.

¿Qué significa alg "none"?

El token no tiene firma, así que nada prueba quién lo creó. Los servidores deben rechazar estos tokens.

¿Es gratis?

Sí. Es gratis, no requiere registro y no tiene límites.