Skip to content
Decodificador de JWT
Tools

Decodificador de JWT

Nuevo

Decodifica un JSON Web Token, inspecciona los claims y verifica firmas HS256 de forma local.

A JWT is a credential. This decoder, verifier and encoder run 100% in your browser — your token and secret are never uploaded, logged, or sent to any server. Even so, never paste a real production token into a site you don't fully trust.

Runs entirely in your browser. Nothing is uploaded.

Decodifica cualquier JSON Web Token en tu navegador

Este decodificador JWT convierte una cadena opaca eyJ… en JSON legible al instante. Pega un JSON Web Token y lo divide en los puntos, decodifica en Base64URL la cabecera y el payload, y los muestra formateados lado a lado, con la firma bruta por separado. Es la forma más rápida de depurar un flujo de autenticación, inspeccionar un token de una respuesta de API o confirmar exactamente qué claims está emitiendo tu backend.

Cada parte del token está coloreada — cabecera, payload y firma — para que las tres secciones de cabecera.payload.firma sean fácilmente distinguibles de un vistazo. No requiere cuenta, no sube nada a servidores y no tiene límite diario de decodificaciones.

Lee los claims y comprueba la expiración de un vistazo

El decodificador resalta los claims registrados estándar definidos en RFC 7519 — iss, sub, aud, exp, nbf, iat y jti — en una tabla clara con el significado en lenguaje natural para cada uno. Los tres claims de tiempo son segundos de época Unix, que son fáciles de malinterpretar, por lo que la herramienta los convierte a tu fecha y hora local y añade una indicación relativa como 'emitido hace 5 minutos' o 'expira en 59 minutos'.

Lo más importante es que responde la pregunta que sueles abrir un depurador JWT para hacerte: ¿sigue siendo válido este token? El claim exp se comprueba contra la hora actual y el token se marca como Válido o Expirado, respetando también nbf, para que puedas ver de inmediato si un token expirado es la razón por la que se está rechazando una solicitud.

Verifica la firma — HS256, RS256 y ES256

Decodificar muestra lo que dice un token; verificar prueba que puedes confiar en él. Esta herramienta es también un verificador de firmas JWT: lee el algoritmo de la cabecera y verifica la firma localmente con la Web Crypto API del navegador. Para HS256, HS384 y HS512 necesitas el secreto HMAC compartido; para RS256, PS256 y ES256 (y sus variantes 384/512) pegas la clave pública del emisor en formato PEM.

Como los cálculos se ejecutan en tu dispositivo, puedes confirmar que un token es auténtico — que nadie alteró el payload — sin enviar el token, el secreto o la clave a ningún servidor. Una marca verde significa que la firma coincide; una cruz roja significa que el token fue modificado o estás usando la clave incorrecta.

Construye y codifica un JWT también

¿Necesitas ir en la otra dirección? El codificador JWT integrado te permite crear un token desde cero. Edita la cabecera y el payload como JSON, elige un algoritmo HMAC, introduce un secreto y produce un token cabecera.payload.firma correctamente firmado listo para copiar en una solicitud o una prueba. Accesos directos añaden claims iat y exp frescos para que tus tokens de prueba tengan marcas de tiempo realistas.

Eso convierte a UtiloKit en un decodificador y codificador jwt combinado — inspecciona tokens que vuelven de tu API y crea nuevos para enviar, todo en el mismo lugar. Este es el mismo flujo de trabajo que los desarrolladores usan con jwt.io, pero sin intervención del servidor y sin necesidad de cuenta.

Cómo se compara con jwt.io, token.dev y jwtdecode.com

jwt.io es la herramienta JWT más reconocida en la web — construida por Auth0, ampliamente enlazada en la documentación y de confianza para millones de desarrolladores. Su principal limitación es la privacidad: jwt.io envía tu token a los servidores de Auth0 en algunas configuraciones, y se integra con los productos comerciales de Auth0.

token.dev y jwtdecode.com cubren la decodificación básica pero no admiten la verificación de firmas RS256/ES256 con clave PEM, que es el algoritmo usado por Auth0, Google, Microsoft Azure AD, Okta y la mayoría de los proveedores OIDC empresariales.

Este decodificador de UtiloKit maneja todo eso en el navegador: decodificación, comprobación de expiración y verificación completa de firmas en las familias de algoritmos HS/RS/PS/ES — gratuito, sin cuenta, sin límite diario y sin que nada salga de tu dispositivo.

Seguridad JWT: qué puede y qué no puede proteger el token

Un JWT está firmado para integridad, no cifrado para confidencialidad. Cualquiera que tenga el token puede leer cada claim en el payload — la codificación Base64URL es trivialmente reversible, como demuestra este decodificador. Por eso el payload debe contener solo identificadores no sensibles: un ID de usuario, rol o correo electrónico. Nunca pongas contraseñas, datos de pago o claves API en un payload JWT.

La firma protege contra la manipulación: si un atacante modifica incluso un solo carácter del payload, la firma ya no coincidirá y cualquier servidor que verifique con la clave correcta rechazará el token. El clásico ataque alg: none elude esto afirmando que no se usa ningún algoritmo — una vulnerabilidad conocida (CVE-2015-9235) que cualquier biblioteca JWT de producción debería bloquear.

Mantén cortos los tiempos de vida de los tokens usando exp, transmite sobre HTTPS, almacena en memoria o cookies httpOnly (no localStorage), y verifica firmas en cada solicitud. Decodifica e inspecciona tus tokens con esta herramienta gratuita para confirmar que estas propiedades están correctamente configuradas antes de desplegar a producción.

Frequently asked questions

¿Qué es un JWT (JSON Web Token)?

Un JWT es una forma compacta y segura para URL de transportar información firmada entre dos partes — más comúnmente un token de inicio de sesión. Son tres partes Base64URL unidas por puntos: cabecera.payload.firma. La cabecera nombra el algoritmo de firma, el payload contiene los claims (datos), y la firma permite al receptor confirmar que el token no fue manipulado. Los JWT son utilizados por OAuth 2.0, OpenID Connect, Auth0, Firebase, Supabase, AWS Cognito y la mayoría de los sistemas de autenticación modernos.

¿Cómo decodifico un JWT?

Divide el token en los dos puntos y decodifica en Base64URL las dos primeras partes. La cabecera y el payload son JSON plano una vez decodificados; la tercera parte (la firma) permanece binaria. Esta herramienta lo hace al instante — pega el token y el header y payload decodificados aparecen formateados. No se envía nada a ningún lugar; la decodificación se ejecuta en tu navegador. No necesitas el secreto o la clave privada para decodificar un JWT.

¿Es seguro decodificar un JWT en línea?

Con esta herramienta, sí — cada byte se decodifica localmente en tu navegador usando JavaScript, y tu token nunca toca un servidor, registro o solicitud de red. Todo se procesa del lado del cliente sin backend y sin seguimiento de análisis del contenido del token. Dicho esto, un JWT sigue siendo una credencial: no pegues un token de producción activo en ningún sitio web en el que no confíes.

¿Qué contiene un JWT?

Tres partes. La cabecera es JSON que describe el tipo y el algoritmo de firma, p.ej. {"alg":"HS256","typ":"JWT"}. El payload es JSON que contiene los claims — tanto los registrados (sub, exp, iat…) como cualquier dato personalizado como roles o un ID de usuario. La firma es un hash con clave de la cabecera y el payload que prueba que no han sido modificados. Solo la firma necesita un secreto o clave; la cabecera y el payload solo están codificados en Base64URL, no cifrados. Cualquiera con el token puede leer el payload.

¿Cómo compruebo si un JWT ha expirado?

Lee el claim exp — una marca de tiempo Unix en segundos. Si exp es anterior a la hora actual, el token ha expirado y debe ser rechazado. Este decodificador convierte exp a una fecha legible, muestra un tiempo relativo como 'expirado hace 3 horas' o 'expira en 59 minutos', y marca el token como Válido o Expirado automáticamente, para que no tengas que convertir los segundos de época manualmente.

¿Cómo verifico una firma JWT?

Decodifica la cabecera para leer alg, luego recalcula la firma sobre cabecera.payload y compara. Para HS256/384/512 necesitas el secreto compartido; para RS256, PS256 o ES256 necesitas la clave pública del emisor en formato PEM. Esta herramienta verifica todos ellos localmente con la Web Crypto API — elige el algoritmo correspondiente, pega el secreto o la clave pública, y reporta si la firma es auténtica.

¿Puedo decodificar un JWT sin el secreto?

Sí. Decodificar solo lee la cabecera y el payload codificados en Base64URL, que no requieren ninguna clave — por eso nunca debes poner secretos en un payload JWT. El secreto o la clave pública solo se necesita para verificar la firma, es decir, para probar que el token es genuino y no ha sido alterado. Decodificar te dice lo que afirma un token; verificar te dice si debes creerlo.