Decodificador JWT

Decodificador JWT

Decodifica e inspecciona tokens JWT en tu navegador. Ve cabecera, payload, claims y caducidad, y verifica firmas localmente. Tu token nunca se sube.

Herramientas de Desarrollo
🔒 Tu token, secreto y claves se procesan por completo en tu navegador. Nunca se envía nada a un servidor.

Ejemplos

Palabras clave

decodificador jwtdecodificar token jwtinspector jwtcomprobar caducidad jwtverificar firma jwt

¿Necesitas algo más?

Cómo usar

1

Pega tu JWT (en formato header.payload.signature) en la casilla de entrada. El token se decodifica al instante y por completo en tu navegador.

2

Lee la cabecera y el payload con formato JSON, la insignia del algoritmo y el estado de caducidad (válido, caducado o aún no válido) calculado a partir de los claims exp y nbf.

3

Revisa la tabla de claims, que explica cada claim estándar — iss, sub, aud, exp, iat, nbf, jti — en lenguaje claro y con marcas de tiempo legibles.

4

Opcionalmente despliega el panel de verificación y pega un secreto HMAC o una clave pública PEM para verificar la firma localmente con la Web Crypto API. La clave nunca se transmite.

Características

Decodificación Instantánea de Cabecera y Payload

Pega un token y ve su cabecera y payload decodificados como JSON resaltado de inmediato. Sin botón que pulsar y sin ida y vuelta a un servidor — la decodificación ocurre mientras escribes.

Tabla de Claims en Lenguaje Claro

Cada claim se explica. Los claims registrados como exp, iat y nbf se convierten de marcas de tiempo Unix a fechas legibles, y los claims personalizados se etiquetan con claridad, para que entiendas exactamente qué afirma el token.

Comprobación de Caducidad y Validez

La herramienta compara los claims exp y nbf con la hora actual y muestra una insignia de estado clara — válido, caducado o aún no válido — para que detectes de un vistazo el error de autenticación más común.

Verificación de Firma Local

Verifica HS256/384/512 con un secreto compartido, o algoritmos RS y ES con una clave pública PEM, usando la Web Crypto API integrada del navegador. Sin librerías externas y, lo más importante, sin transmitir tu secreto ni tu clave.

100% Privado por Diseño

Los tokens a menudo contienen datos personales, identificadores de sesión o credenciales. Aquí todo se procesa en tu navegador — el token, el secreto y la clave nunca salen de tu dispositivo, a diferencia de herramientas populares que envían el token a su servidor.

¿Por qué elegir esta herramienta?

Tu Token Nunca Sale del Navegador

La herramienta JWT online más conocida envía tu token a su servidor para "verificarlo". Un JWT suele llevar datos personales, scopes o una credencial de sesión activa, así que transmitirlo es un riesgo de seguridad real. Este decodificador se ejecuta por completo en el cliente — puedes mirar la pestaña de red y ver que no se envía nada. Sin cuenta, sin registro.

Pensado para Depurar Autenticación, No Solo Decodificar

Más allá de mostrar el JSON, interpreta cada claim estándar, convierte marcas de tiempo a fechas y señala problemas de caducidad y de not-before — justo los fallos que rompen los inicios de sesión. Convierte una cadena opaca en una respuesta a "¿por qué se rechaza este token?".

Verificación Criptográfica Real

La comprobación de firma usa la Web Crypto API presente en todos los navegadores modernos, con soporte de HMAC, RSA y ECDSA. Obtienes verificación genuina, no una marca decorativa, mientras tu secreto o clave pública permanece en tu máquina.

Honesto Sobre los Límites de Seguridad

La herramienta deja claro que decodificar no es verificar, que un payload decodificado no es fiable hasta que la firma se comprueba, y que los secretos nunca se guardan en la URL ni en el almacenamiento local. Enseña el modelo mental correcto en lugar de ocultar los detalles.

JWT Explicado: Estructura, Claims y Cómo Funciona la Verificación

Qué Es Realmente un JWT

Un JSON Web Token (JWT) es una forma compacta y segura para URL de representar afirmaciones (claims) entre dos partes. Se usa sobre todo para autenticación y autorización: tras iniciar sesión, un servidor emite un token firmado, y tu cliente lo reenvía en cada petición para demostrar quién eres. Un JWT no está cifrado por defecto — está firmado. Cualquiera que tenga el token puede leer su contenido; la firma solo garantiza que el contenido no se ha alterado y que lo emitió alguien que posee la clave de firma.

Esa distinción es lo más importante que hay que entender sobre los JWT, y es la razón por la que un decodificador como este puede leer cualquier token sin un secreto, mientras que verificar su autenticidad requiere la clave.

Los Tres Segmentos

Un JWT son tres segmentos codificados en base64url unidos por puntos: header.payload.signature.

  • Cabecera — un pequeño objeto JSON que describe el token, sobre todo el algoritmo de firma (alg, p. ej. HS256 o RS256) y el tipo (typ, normalmente "JWT"). Puede incluir un id de clave (kid) que indica qué clave lo firmó.
  • Payload — el objeto JSON que lleva los claims: sobre quién es el token, quién lo emitió, cuándo caduca y cualquier dato personalizado que necesite la aplicación.
  • Firma — una firma criptográfica sobre la cabecera y el payload, creada con el algoritmo indicado en la cabecera. Es lo que hace fiable al token.

Claims Estándar (Registrados)

La especificación JWT define un conjunto de claims registrados con significados acordados:

  • iss (issuer) — quién creó y firmó el token.
  • sub (subject) — el principal sobre el que trata el token, a menudo un id de usuario.
  • aud (audience) — el destinatario previsto; un token para una API debería ser rechazado por otra.
  • exp (expiration) — una marca de tiempo Unix tras la cual el token debe rechazarse.
  • nbf (not before) — una marca de tiempo antes de la cual el token aún no es válido.
  • iat (issued at) — cuándo se creó el token.
  • jti (JWT id) — un identificador único, útil para listas de revocación.

Esta herramienta convierte los claims de marca de tiempo en fechas legibles y muestra si el token está dentro de su ventana de validez — la fuente más frecuente de errores de autenticación del tipo "funciona en mi máquina pero falla en staging", que a menudo son solo problemas de reloj o de caducidad.

Cómo Funciona la Verificación de Firma

La firma se calcula sobre la cadena base64url(cabecera) + "." + base64url(payload). Con un algoritmo simétrico como HS256, el mismo secreto firma y verifica, usando un HMAC con SHA-256. Con un algoritmo asimétrico como RS256 o ES256, una clave privada firma y la clave pública correspondiente verifica — por eso los servicios pueden publicar su clave pública (a menudo vía un endpoint JWKS) para que cualquiera valide tokens sin poder falsificarlos. Para verificar en esta herramienta, proporcionas el secreto HMAC o la clave pública PEM, y la Web Crypto API del navegador recalcula y compara la firma localmente.

Errores de Seguridad a Evitar

  • Fiarse de un payload decodificado. Decodificar no prueba nada. Nunca actúes sobre los claims hasta que la firma se verifique contra una clave de confianza.
  • La trampa "alg: none". Algunas librerías históricamente aceptaban tokens con el algoritmo a "none", saltándose la verificación. Fija siempre el algoritmo esperado en el servidor.
  • Poner secretos en el payload. Como el payload es legible por cualquiera, nunca guardes contraseñas ni secretos sensibles en él.
  • Ignorar la caducidad. Un token sin un exp corto, o un servidor que no lo comprueba, es una credencial de larga vida esperando a ser robada.
  • Filtrar tokens a terceros. Pegar un token activo en una herramienta online del lado del servidor envía tu credencial de sesión a ese servidor. Usa un decodificador del lado del cliente como este.

Decodificar No Es Verificar — Vale la Pena Repetirlo

Merece su propia sección, porque es el malentendido más común sobre los JWT: todo lo que esta página te muestra sobre la cabecera y el payload de un token proviene de decodificarlo, no de verificarlo. Decodificar es simplemente revertir la codificación base64url para revelar el JSON — cualquiera puede hacerlo con cualquier token, sin ninguna clave, que es justo por lo que esta herramienta puede mostrar el contenido de un token en el instante en que lo pegas. Esa legibilidad no es un aval de la autenticidad del token. Fiarse de un claim como sub o role sin comprobar la firma contra una clave que tú controlas es exactamente cómo se cuelan los tokens falsificados — el payload de un token no verificado no es, desde el punto de vista de la seguridad, más fiable que una afirmación escrita a mano en un archivo de texto. Nuestro artículo complementario sobre por qué decodificar un JWT no lo verifica recorre ejemplos concretos de lo que puede salir mal cuando una aplicación se salta este paso.

Claims Registrados de un Vistazo

ClaimNombre CompletoQué Significa
issIssuer (emisor)Identifica quién creó y firmó el token, para que un verificador compruebe que viene de una autoridad esperada.
subSubject (sujeto)El principal sobre el que trata el token — normalmente un id de usuario o de cuenta de servicio.
audAudience (audiencia)El destinatario previsto del token; un servicio debería rechazar un token cuya audiencia nombre otra API distinta.
expExpiration Time (caducidad)Una marca de tiempo Unix tras la cual el token debe rechazarse sin más, por muy válida que sea la firma.
nbfNot Before (no antes de)Una marca de tiempo antes de la cual el token todavía no debe aceptarse, útil para tokens emitidos por adelantado.
iatIssued At (emitido en)Cuándo se creó el token, útil para auditoría y para calcular su antigüedad.
jtiJWT IDUn identificador único del token, útil para rastrear o revocar un token concreto.

Los siete están definidos en la especificación JWT, RFC 7519; ninguno es obligatorio, pero un sistema de autenticación bien diseñado suele fijar al menos iss, sub, exp e iat.

Paso a Paso: Depurar un 401 por Token Caducado

Un ticket de soporte habitual dice: "recibo un 401 Unauthorized y no sé por qué — el token parece correcto". Así es como este decodificador responde a eso en segundos usando el ejemplo HS256 incluido. Pega el token de ejemplo y la cabecera muestra el algoritmo HS256 con tipo JWT, nada inusual. El payload muestra sub: "user_42", un nombre, un rol "admin", un iat con una marca de tiempo Unix que corresponde a un momento concreto, y un exp exactamente una hora después. La insignia de estado dice "Caducado", y las marcas de tiempo legibles hacen obvio el motivo de un vistazo: este token solo fue válido durante una única hora tras emitirse, y esa hora quedó atrás hace mucho. Ese es el 401 completo: el middleware del servidor comprobó exp contra la hora actual, la encontró en el pasado y rechazó correctamente la petición antes incluso de mirar la firma. La solución no es un cambio de código en el cliente — es pedir un token nuevo (o usar el token de refresco, si la aplicación tiene uno) en vez de seguir enviando un token de acceso cuya vida ya ha terminado.

Preguntas Frecuentes

¿Se envía mi token a vuestro servidor?

No. Todo el proceso — decodificar la cabecera y el payload, interpretar claims, comprobar la caducidad y verificar la firma — ocurre en tu navegador. Tu token, cualquier secreto y cualquier clave nunca salen de tu dispositivo. Puedes confirmarlo mirando la pestaña de red de tu navegador mientras usas la herramienta; no se hace ninguna petición.

¿Puedo decodificar un token sin el secreto?

Sí. Un JWT está firmado, no cifrado, así que la cabecera y el payload son legibles por cualquiera que tenga el token. El decodificador los muestra de inmediato sin ninguna clave. Solo necesitas un secreto o clave pública para el paso opcional de verificar que la firma es auténtica.

¿Qué significa el estado de caducidad?

La herramienta lee los claims exp (expiración) y nbf (not before) y los compara con la hora actual. 'Válido' significa que el token está dentro de su ventana permitida, 'Caducado' que la hora actual ha pasado de exp, y 'Aún no válido' que nbf está en el futuro. Los tokens sin claim exp muestran 'Sin claim de caducidad'.

¿Qué algoritmos puede verificar?

La verificación de firma admite HMAC (HS256, HS384, HS512) con un secreto compartido, RSA (RS256, RS384, RS512) con una clave pública PEM, y ECDSA (ES256, ES384, ES512) con una clave pública PEM. La verificación usa la Web Crypto API integrada del navegador, así que no se carga ninguna librería externa.

¿Por qué decodificar es distinto de verificar?

Decodificar simplemente decodifica los segmentos en base64url para revelar el JSON; te dice qué afirma el token pero no si esas afirmaciones son fiables. Verificar recalcula la firma criptográfica con una clave que tú aportas y confirma que el token lo emitió quien posee esa clave y que no se ha alterado. Verifica siempre antes de fiarte de un token.

¿Es seguro pegar un token de producción aquí?

Como todo es del lado del cliente y nada se transmite, pegar un token aquí no lo expone por la red. Como buena práctica, evita pegar credenciales de producción activas en cualquier página web, y prefiere tokens de prueba de vida corta. Esta herramienta está diseñada precisamente para que no tengas que enviar tokens a un servidor remoto para inspeccionarlos.

¿Guarda mi secreto o clave?

No. El secreto o la clave que introduces para la verificación se usa solo en memoria para la llamada de verificación y nunca se escribe en la URL, el almacenamiento local ni en ningún otro sitio. Recargar la página lo borra por completo.

¿El decodificador JWT es gratuito?

Sí, completamente gratuito sin registro, sin límites y sin anuncios inyectados en los resultados. La decodificación, la interpretación de claims, la comprobación de caducidad y la verificación de firma local están todas disponibles sin coste, con cada operación ejecutándose de forma privada en tu navegador.

Si el decodificador me muestra todos los claims con claridad, ¿significa que el token es fiable?

No. Mostrar los claims solo demuestra que puedes leer lo que el token afirma, no que esas afirmaciones sean genuinas. Cualquiera puede decodificar un token sin ninguna clave. Solo verificar la firma contra una clave de confianza te dice que el token fue emitido realmente por su emisor declarado y que no ha sido alterado.

¿Qué claims debería incluir como mínimo un token de acceso bien diseñado?

La mayoría de los sistemas en producción fijan al menos iss (quién lo emitió), sub (sobre quién trata), exp (cuándo caduca) e iat (cuándo se creó), a menudo junto con aud para limitar el token a una API. Un token sin ningún exp merece investigarse, porque se comporta como una credencial de larga vida y difícil de revocar.

Artículos Relacionados

Saber más