Saltar al contenido

Decodifica y verifica JWT

Decodifica la cabecera y los claims de un JSON Web Token, comprueba su caducidad y verifica su firma; el token no sale de tu navegador.

Se decodifica y verifica en esta pestaña: el token y las claves no se envían a ninguna parte.

El encabezado, los claims y la caducidad aparecerán aquí cuando pegues un token.
Se ejecuta en tu navegador · sin subir archivosCómo funciona

Cómo usar Decodificador JWT

  1. 1

    Pega el token

    Pega el JWT de una cabecera Authorization, una cookie o el almacenamiento de tu aplicación; un «Bearer » inicial se ignora.

  2. 2

    Lee los claims

    Revisa las tablas del encabezado y del payload, las fechas legibles de exp, iat y nbf, y el aviso de caducidad.

  3. 3

    Añade la clave

    Introduce el secreto HMAC o pega la clave pública como PEM, certificado, JWK o JWKS.

  4. 4

    Verifica la firma

    Pulsa Verificar firma para confirmar que el token se firmó con esa clave y que no ha sido modificado.

Límites y Pro

Gratis, sin registro y sin límite en el número de tokens; la verificación admite 13 algoritmos (HS, RS, PS y ES de 256, 384 y 512 bits, además de EdDSA).

Pro quita los anuncios; la decodificación y la verificación son iguales en todos los planes. Ver Pro

Acerca de Decodificador JWT

Un JSON Web Token son tres cadenas Base64URL unidas por puntos: un encabezado que indica el algoritmo de firma, un payload con claims y una firma. Pega uno, con o sin el prefijo «Bearer », y el decodificador muestra el encabezado y el payload como una tabla legible o como JSON con formato, colorea las tres partes del token y explica campos estándar como iss, sub, aud, kid y scope.

Los claims de tiempo se convierten por ti: exp, iat, nbf y auth_time aparecen como fecha en tu zona horaria, en UTC y como tiempo relativo («caduca dentro de 2 horas», «caducó hace 3 días»). Un aviso te indica de un vistazo si el token ha caducado, aún no es válido o no tiene caducidad, y te advierte cuando exp parece estar en milisegundos en lugar de segundos.

Decodificar no demuestra nada sobre quién emitió un token, así que el verificador comprueba la firma con WebCrypto, integrado en tu navegador. HS256, HS384 y HS512 necesitan el secreto compartido (texto sin formato o Base64). Los algoritmos RS, PS y ES de 256, 384 y 512 bits, además de EdDSA con Ed25519, necesitan la clave pública, que puedes pegar como clave pública PEM, bloque RSA PUBLIC KEY, certificado X.509, un JWK suelto o un JWKS completo, donde la clave se elige según el kid del token.

La herramienta no puede descifrar tokens JWE (los de cinco partes) ni descarga URL de JWKS; abre tú mismo el jwks_uri del emisor y pega su JSON.

Privacidad

Los tokens son credenciales al portador, y esta página los trata como tales: la decodificación y la comprobación de firmas se ejecutan en tu navegador con WebCrypto, y el token, el secreto y las claves nunca se envían a un servidor, ni se registran ni se guardan. Al cerrar o recargar la pestaña se borra todo.

Características

Fechas legibles

exp, iat y nbf en tu zona horaria, en UTC y como «dentro de 2 horas» o «hace 3 días».

Verificación real de firmas

HMAC, RSA, RSA-PSS, ECDSA y Ed25519 verificados con WebCrypto frente a tu clave o JWKS.

El token no sale de tu equipo

No se sube nada, así que puedes inspeccionar tokens de producción con seguridad.

Decodificador JWT: preguntas frecuentes

¿Es seguro pegar aquí un token de producción?
El token se decodifica y verifica con JavaScript que se ejecuta en tu pestaña, y no se hace ninguna solicitud que lo contenga, algo que puedes comprobar en el panel de red del navegador. Aun así, un token válido funciona como una contraseña hasta que caduca, así que evita pegar tokens activos en sitios en los que no confías y usa tokens caducados o de prueba al compartir capturas.
¿Por qué un token decodificado no demuestra nada?
Cualquiera puede crear un encabezado y un payload y codificarlos en Base64URL; decodificar solo revierte ese paso. Únicamente la firma vincula el token con su emisor. Verifícala con la clave pública del emisor o con el secreto compartido antes de confiar en cualquier claim, y comprueba que alg sea el que espera tu servidor, porque aceptar «none» o un algoritmo cambiado es una vulnerabilidad clásica.
¿Dónde encuentro la clave pública para verificar un token RS256 o ES256?
Los proveedores de identidad publican sus claves como un conjunto JWK. Busca el /.well-known/openid-configuration del emisor, abre el jwks_uri que indica y pega aquí ese JSON; se usará la clave cuyo kid coincida con el del encabezado del token. También puedes pegar una clave pública PEM o el certificado X.509 del emisor.
¿Qué significan exp, iat y nbf?
Son claims NumericDate, contados en segundos desde el 1 de enero de 1970 UTC. exp indica cuándo deja de ser válido el token, iat cuándo se emitió y nbf el primer momento en que puede aceptarse. Los servidores suelen tolerar uno o dos minutos de desfase del reloj. El decodificador muestra cada uno como fecha local, marca de tiempo UTC y tiempo relativo.
¿Por qué falla la verificación con el secreto HMAC correcto?
Las causas habituales son espacios copiados junto con el secreto, un secreto que estaba codificado en Base64 cuando se firmó el token, o un token recodificado por una herramienta que cambió los bytes del encabezado o del payload. Prueba la opción «El secreto está codificado en Base64». Cualquier cambio en las dos primeras partes, incluso reordenar las claves del JSON, invalida la firma.