Decodificador y verificador de JWT
Fijar en tus herramientasDecodifica un JSON Web Token, comprueba su caducidad y sus claims, y verifica su firma con un secreto o una clave pública.
Funciona por completo en tu navegador. Lo que escribes nunca se envía a nuestros servidores.
Carga útil
Un secreto para HS256/384/512, una clave pública en PEM (SPKI o certificado) para las demás, o un JWK o JWKS (la clave se elige por el kid del token). La clave nunca se comparte ni se guarda.
historial · 0
Las entradas procesadas aparecen aquí mientras esta página esté abierta. Al recargar la página se borra la lista.
Ejemplos de código
Copia estos ejemplos en tu propio proyecto. Cada uno usa solo la biblioteca estándar del lenguaje, así que no hay nada que instalar.
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'
const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')
console.log(JSON.stringify(JSON.parse(json), null, 2))Qué hace
Decodifica un JSON Web Token para leer su cabecera y su carga útil, comprueba si ha caducado y verifica su firma con un secreto o una clave pública. El token se decodifica en tu navegador, esta página no muestra anuncios y el token y la clave nunca se comparten ni se guardan.
Cómo usarla
- Pega el token. Se ignoran el prefijo
Bearery los saltos de línea. - Lee la carga útil como JSON con formato o compacto. Debajo ves el algoritmo, el estado y las fechas
exp,nbfeiatjunto con lo lejos que están de ahora. - Para verificar la firma, introduce la clave: un secreto para HS256, HS384 y HS512, o una clave pública (PEM o JWK) para RS, PS, ES y EdDSA.
- Cambia la cabecera y el payload entre JSON y Claims: Claims lista cada claim con su significado y muestra los claims de tiempo como fechas.
- Abre la pestaña Codificar para escribir una cabecera y un payload y firmarlos con un secreto o una clave privada (PEM PKCS#8 o JWK). Nada de esa pestaña se guarda, se comparte ni se añade al historial.
Ejemplos
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
La carga útil de ese token:
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Su firma se verifica con el secreto your-256-bit-secret.
Conviene saber
- Decodificar no es verificar: la carga útil solo está codificada, no cifrada, y cualquiera puede leerla.
- Tu servidor debe verificar la firma antes de fiarse de cualquier claim.
- Un token con el algoritmo
noneno está firmado, así que cualquiera podría haberlo creado. - Trata los tokens reales como contraseñas. Si puedes, pega aquí tokens caducados o de prueba.
- Un JWKS pegado se busca por el
kiddel token, y un JWK suelto se usa tal cual. La página nunca descarga un conjunto de claves del emisor del token. - Un secreto HMAC más corto que su hash (32, 48 o 64 bytes) se puede adivinar, por eso la página te avisa. Un secreto se puede leer como texto UTF-8 o como Base64URL.
¿Qué es un JWT?
Un JSON Web Token son tres partes Base64URL unidas por puntos: una cabecera con el algoritmo de firma, una carga útil con claims (para quién es el token, cuándo caduca) y una firma. Cualquiera puede leer las dos primeras partes; solo la firma prueba que el token viene de alguien que tiene la clave.
Preguntas frecuentes
¿Decodificar un token es lo mismo que verificarlo?
No. Decodificar solo lee el contenido, que no está cifrado. Verificar comprueba la firma con la clave, y tu servidor debe hacerlo antes de fiarse de cualquier claim.
¿Qué significan exp, nbf e iat?
exp es cuándo caduca el token, nbf el momento antes del cual no es válido e iat cuándo se emitió, todo en segundos desde 1970. Esta herramienta los compara con el reloj de tu dispositivo.
¿Es seguro pegar aquí un token real?
El token se decodifica en tu navegador y nunca se envía a nuestros servidores, y esta página no muestra anuncios. Aun así, trata los tokens vivos como contraseñas: mejor usa tokens caducados o de prueba.