Convertidor Gratuito

Decodificador de Token JWT

Decodifica el encabezado y la carga útil de un JWT (JSON Web Token) al instante en tu navegador. Gratis, privado y del lado del cliente — no se envían datos al servidor.

Acerca de esta herramienta

Los JSON Web Tokens (JWT) son un formato compacto y seguro para URL para transmitir reclamaciones entre dos partes, definido por RFC 7519. Un JWT consta de tres segmentos codificados en base64url separados por puntos: encabezado (algoritmo y tipo de token), carga útil (reclamaciones) y firma (prueba criptográfica de autenticidad). El encabezado y la carga útil son JSON, codificados en base64url para seguridad de URL; la firma utiliza uno de varios algoritmos (HS256, RS256, ES256 y otros) sobre el encabezado codificado y la carga útil.

Decodificar un JWT (dividirlo en segmentos y decodificar en base64 cada uno) no requiere ningún secreto. Cualquiera que tenga el texto del token puede leer su encabezado y carga útil. La firma, sin embargo, sólo puede verificarse con la clave secreta (HMAC) o pública (asimétrica). La decodificación es para inspección; la verificación es lo que prueba la autenticidad.

Este decodificador divide el token, decodifica en base64 cada segmento, analiza el encabezado y la carga útil como JSON y muestra el resultado. No intenta verificar la firma porque requiere la clave pública o secreta, que el decodificador no tiene. La salida decodificada es una inspección de solo lectura, útil para depurar tokens pero no sustituye la verificación adecuada en el código de la aplicación.

Por qué decodificar JWT

La depuración de problemas de autenticación casi siempre implica inspeccionar tokens. Un token que parece válido en el código puede tener afirmaciones incorrectas, un algoritmo inesperado, una marca de tiempo de exp vencida o una discrepancia de audiencia. Decodificar el token revela exactamente lo que produjo el emisor.

También ayuda inspeccionar los tokens durante el trabajo de integración. Al conectarse a una API de terceros o a un proveedor de identidad, los nombres, los formatos y la estructura de los reclamos reales se comprenden mejor decodificando tokens de muestra en lugar de confiar en documentación que puede estar desactualizada.

Cómo usarla

Pegue el token y obtenga el contenido analizado.

  1. Pega tu JWT: Suelte el token completo (header.payload.signature) en el área de entrada. El decodificador acepta tokens con o sin el prefijo portador opcional.
  2. inspeccionar el encabezado: El encabezado muestra el algoritmo de firma (alg) y el tipo de token (typ). Los algoritmos comunes son HS256, RS256 y ES256. Esté atento a alg: none, que indica un token sin firmar y rara vez es seguro en producción.
  3. Inspeccionar la carga útil: La carga útil contiene los reclamos: iss (emisor), sub (asunto), aud (audiencia), exp (vencimiento), iat (emitido en) y cualquier reclamo específico de la aplicación. Las marcas de tiempo estándar son segundos de la época Unix.
  4. Verificar por separado: El decodificador no verifica la firma. Para comprobar la autenticidad, ejecute el token a través de una biblioteca JWT con la clave pública o secreta adecuada en el código de su aplicación.

Casos de uso comunes

Detalles técnicos

El formato JWT consta de tres segmentos unidos por puntos. Cada segmento está codificado en base64url, la variante segura de URL de base64 que usa - y _ en lugar de + y /, y a veces se omite el relleno. La decodificación requiere deshacer las sustituciones seguras de URL, rellenar el segmento y decodificar en base64.

El encabezado y la carga útil son JSON después de la decodificación. El segmento de firma es binario (bytes de firma sin procesar) y no es legible por humanos; requiere que la clave de verificación sea útil.

Reclamaciones comunes definidas en RFC 7519: iss (emisor), sub (identificador de sujeto), aud (audiencia), exp (vencimiento como segundos de época de Unix), nbf (marca de tiempo no anterior), iat (marca de tiempo emitido en), jti (ID de token único). Los reclamos específicos de la aplicación pueden aparecer con cualquier nombre.

Mejores prácticas

Preguntas frecuentes

¿Es seguro pegar mi JWT aquí?
Sí. La decodificación se realiza completamente en su navegador: el token nunca se envía a ningún servidor. Sin embargo, los JWT son credenciales: no los comparta públicamente (en capturas de pantalla, publicaciones de Stack Overflow, etc.), ya que pueden otorgar acceso a sus cuentas.
¿Esta herramienta verifica la firma JWT?
Esta herramienta decodifica y muestra el contenido del token. La verificación de firma requiere la clave secreta (HMAC) o la clave pública (RSA/ECDSA), que debe permanecer en su servidor. La herramienta muestra el algoritmo utilizado pero no puede verificarlo sin la clave.
¿Qué significan las afirmaciones estándar de JWT?
iss = emisor, sub = asunto (ID de usuario), exp = tiempo de vencimiento (marca de tiempo Unix), iat = emitido en, nbf = no antes, aud = audiencia, jti = ID de JWT. Los reclamos personalizados pueden contener cualquier dato específico de la aplicación.
¿Por qué cualquiera puede decodificar un JWT?
Los JWT están codificados, no cifrados. La carga útil está codificada en Base64URL (no cifrada), por lo que cualquiera puede leerla. La firma impide la manipulación, no la lectura. Nunca almacene datos confidenciales (contraseñas, SSN) en cargas útiles de JWT.
¿Por qué a algunos tokens les falta la firma?
Tokens con alg: ninguno tiene firma. Son JWT válidos según las especificaciones, pero no ofrecen garantías de autenticidad y no deben aceptarse en producción.
¿Están cifrados los JWT?
Las cargas útiles JWT estándar están firmadas pero no cifradas. JWE (JSON Web Encryption, RFC 7516) es un formato independiente para tokens cifrados. La mayoría de los JWT disponibles son JWS (solo firmados).
¿Mi token está subido a un servidor?
No. La decodificación ocurre en su navegador; el token no sale de su dispositivo.
¿Cuánto duran normalmente los JWT?
Desde unos pocos cientos hasta varios miles de caracteres. La longitud depende del número y tamaño de las reclamaciones más la longitud de la firma (que depende del algoritmo).