Decodificador de JWT
Lee la cabecera, los claims y la caducidad de un JSON Web Token en tu navegador. Solo decodifica: no se verifica ninguna firma.
Se ejecuta enteramente en tu navegador. No se sube, registra ni guarda nada.
Esto decodifica. No verifica. Nada de lo que aparece abajo indica si el token es auténtico. Cualquiera que tenga un token firmado puede leer sus claims, y cualquiera puede escribir un token con este aspecto. Comprueba la firma en tu aplicación, con tu clave.
Pega un token y ve su cabecera, sus claims y su caducidad. La decodificación se hace en tu navegador: el token no se envía, no se registra y no se almacena.
Esta herramienta no comprueba la firma, y nada de lo que te muestre significa que el token sea auténtico.
Cómo funciona
Un JSON Web Token son tres partes codificadas en base64url separadas por puntos: una cabecera que dice qué algoritmo lo firmó, una carga útil de claims y una firma sobre las dos primeras. Las dos primeras están codificadas, no cifradas: cualquiera que tenga el token puede leerlas, que es exactamente lo que pasa aquí.
Los claims de tiempo registrados se muestran como fechas legibles: `exp` cuando deja de ser válido, `nbf` cuando empieza a serlo, `iat` cuándo se emitió. Se comparan con tu reloj para decir en qué punto de su ventana está el token.
La firma se muestra tal como venía escrita y no se decodifica. Es una firma sobre bytes, no sobre texto, y mostrarla como caracteres daría a entender que dice algo.
Ejemplos
| Caso | Entrada | Resultado |
|---|---|---|
| Un token que declara que no tiene firma | eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0NTY3ODkwIn0. | alg none, typ JWT, sub 1234567890 |
Preguntas frecuentes
¿Por qué no verifica la firma?
Porque verificar necesita la clave de firma, y una página que te la pidiera te estaría pidiendo que pegaras en un sitio web el secreto que protege tu sistema. Hay además una razón más sutil: un decodificador que pareciera verificar te invitaría a confiar en una carga útil que podría haber escrito cualquiera. Verifica en tu aplicación, con tu clave.
¿Un JWT va cifrado?
No. Un token firmado está codificado, que no es lo mismo: cualquiera que lo tenga puede leer todos sus claims, sin necesidad de clave. No pongas nunca en un token nada que quien lo lleve no deba ver. Los tokens cifrados existen —tienen cinco partes en lugar de tres— y esta herramienta no puede leerlos.
¿Qué significa un algoritmo «none»?
Que el token no lleva ninguna firma. Es el ataque más antiguo contra JWT: quitar la firma, poner `alg` a `none` y confiar en que la biblioteca receptora lo acepte. La página avisa de un token así; si estás viendo uno que no has creado tú, trátalo como hostil.
¿Sale mi token del navegador?
No. La decodificación se ejecuta en local en JavaScript, y esta herramienta no tiene enlace para compartir, porque un enlace pondría el token en una URL, donde acabaría en el historial del navegador y en los registros del servidor.
Conviene saber
- Solo decodifica. No se verifica ninguna firma, y nada de esta página dice si un token es auténtico.
- El token se decodifica en tu navegador y no se envía, se registra ni se almacena nunca. La herramienta necesita JavaScript; sin él no hay decodificación en absoluto.
- Un token firmado lo puede leer cualquiera que lo tenga. Trata todos sus claims como públicos.
Fuentes
Todas las herramientas de Código