Inspecciona un JWT y verifica su firma con un secreto HMAC o una clave pública JWK o JWKS. Indica el emisor o la audiencia esperados para comprobarlos también; decodificar el token no verifica su autenticidad.
Se ejecuta localmente en tu navegadorPara HS256/384/512, introduce el secreto compartido sin transformar. Para algoritmos asimétricos, pega un JWK público o un documento JWKS JSON.
Decode or verify a compact JWT to inspect its protected header and payload.
Cualquiera puede decodificar el payload de un JWT. Confía en el token solo después de verificar correctamente la firma con el algoritmo y la clave previstos, además de issuer, audience, tiempo y claims de la aplicación.
Pega un JWT compacto y la herramienta muestra su cabecera protegida y su payload, y después verifica la firma con el material que le des: un secreto compartido en claro para HS256/384/512, o un documento JWK o JWKS público para RS, PS, ES y EdDSA. En la misma pasada puedes comprobar el emisor o la audiencia esperados.
Decodificar no es verificar. La página decodifica en local y lo dice, y solo informa de un token como verificado cuando pasan la firma y las claims registradas (exp, nbf, iss, aud). No se sube nada, no se descarga ninguna URL de JWKS y el material de clave no se guarda.
Inspeccionar token pasa el payload por un decodificador JWT e imprime la cabecera protegida y el payload como JSON. La línea de estado se queda en aviso a propósito: cualquiera que tenga el token puede leerlo, así que las claims decodificadas son solo un anticipo de lo que el token dice ser.
Un token que no declara ningún algoritmo firmado (alg none o ausente) se decodifica aquí igualmente: la inspección nunca exige una firma. Verificar firma es la comprobación que lo rechaza.
Con un secreto compartido se recalcula la firma sobre el texto exacto del token y se compara; con una clave pública se importa el JWK correspondiente y se usa. En un documento JWKS se busca la clave cuyo kid coincide con la cabecera del token y, si el token no lleva kid, se usa la primera.
Las claims registradas se revisan en la misma pasada: exp y nbf contra el reloj actual, iss contra el emisor esperado y aud contra la audiencia esperada cuando esos campos están rellenos. La línea de estado nombra el primer fallo —firma incorrecta, comprobación de exp o nbf, valor de iss o aud inesperado o ausente— en lugar de un error genérico.
El resumen lista Algoritmo, ID de clave, Emisor, Audiencia, Sujeto y Caduca; un array de audiencias se imprime como lista separada por comas. El panel de abajo es el token decodificado como JSON con sangrado, con protectedHeader y payload en un mismo documento.
Ambos paneles son texto de solo lectura: el resultado se puede seleccionar y copiar, y una verificación correcta mantiene la misma disposición que una inspección, de modo que nada oculta que la firma es la parte que hace fiables las claims.
Todo ocurre en la pestaña con la librería jose y la Web Crypto API. La página no hace ninguna petición al inspeccionar ni al verificar, nunca descarga una URL de JWKS —el documento lo pegas tú— y el material de clave se queda en los campos del formulario.
El botón de ejemplo es el único sitio donde existe una clave privada, y no sale de la página: el par se genera en el navegador, el token se firma allí y el campo se rellena solo con el JWK público. Eso también significa que la rotación de claves es manual: un JWKS rotado hay que pegarlo de nuevo.