Decodificador JWT
Decodifica la cabecera y la carga útil de un JWT, lee exp, iat y nbf como fechas y verifica firmas HS256, RS256, ES256 o EdDSA en tu navegador.
Los tokens son credenciales. Esta herramienta los decodifica y verifica en tu navegador y nunca los envía a ningún sitio.
Cabecera (header)
Carga útil (payload)
| Claim | Valor | Fecha | Estado |
|---|
- Algoritmo (alg)
- —
- Firma (Base64url)
- —
Verificar la firma
HS256/384/512: introduce el secreto compartido. RS, PS, ES (256/384/512) y EdDSA: pega la clave pública en PEM (clave pública, clave pública RSA o certificado) o JWK (en un JWK Set se elige la clave por kid).
Cómo decodificar un JWT
- Pega el token en JSON Web Token. También sirve un valor
Authorization: Bearer …completo: el prefijoBearery los saltos de línea se eliminan. - El token se decodifica mientras escribes (o al pulsar Decodificar). La Cabecera (header) y la Carga útil (payload) aparecen como JSON formateado, cada una con su propio botón Copiar.
- Consulta la tabla Claims de tiempo:
exp,nbfeiatse muestran con su valor bruto, la fecha en tu zona horaria, un tiempo relativo («dentro de 3 horas», «hace 2 días») y un estado como Expirado o Aún no válido. - Revisa los avisos que aparecen sobre los resultados, por ejemplo cuando
algvalenoneo cuando una fecha parece estar en milisegundos. - Para comprobar la firma, introduce la clave en Verificar la firma y pulsa Verificar firma.
Decodificar no es verificar
Un JWT son tres partes en Base64url separadas por puntos: header.payload.signature. La cabecera y la carga útil solo están codificadas, no cifradas: cualquiera que tenga el token puede leerlas, y esta herramienta decodifica cualquier token sin necesidad de clave. Eso también significa que una carga útil decodificada no demuestra nada, porque alguien podría haberla editado. Solo una firma válida prueba que el token lo emitió quien posee la clave y que no se ha modificado desde entonces. Por eso la línea de estado indica «Decodificado (firma no verificada)» hasta que lo verifiques.
Un token de cinco partes es un JWE (JWT cifrado): su contenido no se puede leer sin la clave de descifrado, y la herramienta te lo indica.
Verificar la firma
- HS256, HS384, HS512 (HMAC): introduce el Secreto compartido. Usa Formato del secreto para indicar si es texto plano (UTF-8) o Base64/Base64url, ya que algunos proveedores guardan los secretos en Base64. También puedes pegar un JWK de tipo
oct. Si el secreto es más corto que la salida del hash (32 bytes para HS256), la herramienta avisa de que está por debajo del mínimo de la RFC 7518. - RS256/384/512, PS256/384/512, ES256/384/512 y EdDSA: pega la Clave pública (PEM o JWK). Se aceptan los bloques PEM
PUBLIC KEY,RSA PUBLIC KEYyCERTIFICATE(la clave se extrae del certificado X.509). También funciona un JWK o un JWK Set completo: se usa la clave cuyokidcoincide con el de la cabecera. Las claves privadas se rechazan, porque un verificador nunca las necesita. EdDSA admite Ed25519 en los navegadores cuyo Web Crypto lo implementa.
La verificación usa la API Web Crypto del navegador. Un resultado de «Firma no válida» significa que la clave es incorrecta o que el token se ha modificado. Ten en cuenta que el algoritmo se toma de la cabecera del token: un servidor real debe fijar el algoritmo esperado en su configuración; si no, un atacante puede elegirlo.
Notas de seguridad
- Los tokens son credenciales. Quien tenga un token de acceso válido suele poder actuar como su propietario hasta que expire. Esta herramienta decodifica y verifica todo en tu navegador y nunca envía el token ni la clave a ninguna parte. Aun así, evita pegar tokens de producción en herramientas que no puedas inspeccionar.
alg: nonesignifica que el token no está firmado. Cualquiera puede falsificarlo y un servidor debe rechazarlo. La herramienta muestra un aviso y se niega a «verificar» un token así.- Las comprobaciones de tiempo usan el reloj de tu ordenador sin margen; los servidores suelen tolerar uno o dos minutos de desfase.
- Las fechas JWT (NumericDate) son segundos desde el 1 de enero de 1970 UTC. Un valor de 13 cifras probablemente está en milisegundos, un error muy habitual.
Preguntas frecuentes
¿Puede esta herramienta decirme si un token es válido?
Puede decirte si la firma coincide con la clave que proporcionas y si exp y nbf se cumplen en este momento. Que el token sea aceptado depende además de comprobaciones que solo conoce el servidor: emisor esperado (iss), audiencia (aud), algoritmo y revocación.
¿Por qué falla la verificación con el secreto correcto?
Revisa el Formato del secreto: un secreto en Base64 introducido como texto da una clave distinta. Asegúrate también de que no se ha colado ningún espacio ni salto de línea, porque las claves HMAC se comparan byte a byte.
¿Qué diferencia hay entre RS256, PS256 y ES256?
Las tres son firmas de clave pública con SHA-256. RS256 usa RSA con relleno PKCS#1 v1.5, PS256 usa RSA con relleno PSS y ES256 usa ECDSA sobre la curva P-256, que produce firmas mucho más cortas.
¿Dónde encuentro la clave pública de un proveedor?
Los proveedores de identidad publican un JWKS (JSON Web Key Set), normalmente enlazado desde /.well-known/openid-configuration en jwks_uri. Ábrelo tú mismo y pega aquí el JSON; la herramienta elige la clave por kid y nunca descarga nada.
¿Es seguro pegar aquí mi token?
El token se queda en tu dispositivo: la decodificación y la verificación se hacen localmente y no se sube nada. Para mayor precaución, usa un token caducado o de pruebas cuando solo necesites inspeccionar su estructura.
Herramientas relacionadas
- Generador HMAC Calcula un HMAC-SHA1, SHA-256, SHA-384 o SHA-512 con una clave en texto, hex o Base64, obtén la salida en hex y Base64 y verifica firmas de webhook.
- Codificador y decodificador Base64 Codificador y decodificador Base64 gratuito, compatible con UTF-8 y con opción base64url apta para URL. Funciona en tu navegador, no se sube nada.
- Conversor de timestamp Unix Convierte timestamps Unix en segundos o milisegundos a fechas legibles en hora local, UTC e ISO 8601, y pasa cualquier fecha a tiempo epoch.
- Formateador y validador JSON Formateador y validador JSON gratuito que embellece, minifica y comprueba JSON en tu navegador, con los errores de sintaxis indicados por línea y columna.