También disponible en: English · Português · Français · العربية
Decodificador de JWT
Pega un JSON Web Token y mira su header, su payload y sus claims al instante, sin que salga de tu navegador.
¿Qué es un decodificador de JWT?
Un JSON Web Token (JWT) es el formato compacto que define el RFC 7519 para transportar información entre dos partes en forma de claims: pares clave-valor firmados que viajan como un único string de tres tramos separados por puntos. Es la manera más habitual de llevar la sesión de un usuario en una API o de mantener el estado de un login sin depender de una cookie de servidor.
Decodificarlo consiste en deshacer la codificación base64url de esas dos primeras partes para recuperar el JSON del header y del payload tal como los escribió quien emitió el token. Es una operación reversible y pública — cualquiera con el token puede hacerla —, así que decodificar solo te dice qué afirma el token, nunca si esa afirmación es de fiar.
Cómo se usa
- Pega tu JWT. El área de texto lo decodifica mientras escribes, sin necesidad de pulsar ningún botón.
- Lee el header y el estado. Arriba aparecen el algoritmo, el tipo y si el token está caducado, aún no es válido o ninguna de las dos cosas.
- Revisa cada claim del payload. La tabla muestra su nombre, su valor y, para los siete claims que define el RFC 7519, su significado y la fecha legible si es una marca de tiempo.
Los límites honestos
Decodificar y verificar son dos operaciones distintas, y el propio RFC 7519 las separa: decodificar recupera los bytes del header y del payload deshaciendo el base64url; verificar comprueba que la firma del tercer tramo corresponda a esos bytes y a una clave que solo el emisor legítimo posee. Esta página solo hace lo primero. Cualquiera puede escribir un JSON con “admin”: true, codificarlo en base64url y pegarlo aquí: se decodificará sin quejarse, porque decodificar no juzga si el contenido es cierto, solo lo hace legible.
Por eso no hay un campo para pegar un secreto. Verificar un token firmado con HS256 exigiría escribir esa clave compartida en una página web, y esa clave es justo el dato que nunca debe salir de tu servidor: si se filtra, cualquiera puede firmar tokens válidos en tu nombre. Añadir ese campo para completar la función habría sido fácil y habría sido la decisión equivocada; esta herramienta se limita a mostrar la firma como el tercer tramo del token, sin tocarla.
Tampoco puede decirte varias cosas que dependen del contexto de tu aplicación: si exp indica que el token caducó lo hace comparando con el reloj de tu propio dispositivo, no con el del servidor que lo validará; no comprueba que aud o iss coincidan con lo que tu backend espera; no sabe si el token fue revocado antes de su caducidad natural, porque eso vive en una lista del emisor que esta página no puede consultar; y si el token tiene cinco tramos en vez de tres es un JWE cifrado, que sin la clave de descifrado es, correctamente, ilegible.
El propio decodificador se contrastó frente a la biblioteca jose sobre 400 tokens generados al azar más una batería de casos límite escritos a mano — 3.073 comprobaciones, todas correctas — antes de retirar esa dependencia del proyecto; el resultado es una implementación propia medida contra una referencia, no una promesa sin comprobar.
¿Por qué es gratis?
La página es HTML y JavaScript estáticos: no hay servidor procesando tu token, no hay cuenta que crear ni límite de usos que vencer. Todo el trabajo lo hace tu navegador, así que no hay subida que pagar ni cola que esperar, y eso es lo que hace que esta herramienta pueda ser gratis y no lleve marca de agua ni te pida registrarte.