Decodificador JWT
Pega un JWT y muestro su header y payload decodificados, el algoritmo de firma y los claims (iss, sub, aud, exp, iat, nbf) con fechas legibles y estado de expiración. El token nunca sale de tu navegador.
Header
—
Payload
—
Claims registrados
| Claim | Valor | Significado |
|---|---|---|
| Sin claims que mostrar todavía. | ||
Cómo funciona · anatomía de un JWT
1. Un JWT tiene tres partes
separadas por puntos: header.payload.signature. Header y
payload son JSON codificado en Base64URL
(variante URL-safe: +→-,
/→_, sin relleno =).
2. El header declara el
algoritmo de firma (alg) y el tipo (typ). El
payload lleva los claims: datos como
sub (sujeto), iss (emisor) o exp
(expiración).
3. Las fechas exp,
iat y nbf son epoch en segundos
(Unix). Aquí las convierto a fecha y hora legibles y comparo
exp con la hora actual para marcar el token como
vigente o expirado.
4. Decodificar no es
verificar. Cualquiera puede leer el payload; la
firma es lo que garantiza que no fue alterado. Solo se
valida si pegas el secreto HS*. Nunca confíes en un token
sin verificar su firma en el servidor.
Decodificación local en tu navegador · sin registro · el token no se envía a ningún servidor.
¿Cómo funciona?
El decodificador toma un JSON Web Token (RFC 7519) con su estructura de tres partes header.payload.signature y decodifica localmente las dos primeras, que son JSON en Base64URL (la variante URL-safe de Base64: +→-, /→_, sin relleno =). Muestra el algoritmo de firma (alg) y el tipo (typ) del header, el payload completo con formato, y los claims registrados (iss, sub, aud, exp, iat, nbf) con sus fechas epoch convertidas a hora legible.
Además compara exp con la hora actual para marcar el token como vigente o expirado. Importante: decodificar no es verificar; cualquiera puede leer un payload JWT. Si el token está firmado con HMAC (HS256/384/512) puedes pegar el secreto y la herramienta comprueba la firma en tu navegador con Web Crypto; las firmas asimétricas (RS*/ES*) no se verifican aquí y siempre deben validarse en el servidor.
Ejemplo: leer el token de prueba clásico
- Pega un token como
eyJhbGciOiJIUzI1NiIs…(el botón Cargar ejemplo trae uno). - El header decodificado muestra
{ alg: HS256, typ: JWT }y el payload{ sub: 1234567890, name: John Doe, iat: 1516239022 }. - El claim
iat(emitido en) se traduce del epoch 1516239022 al 18 de enero de 2018 (UTC); como no traeexp, no se marca expiración. - Si pegas el secreto HS256 correcto, la firma se valida localmente y el estado cambia a firma verificada.