Decodificador JWT
Pega un JSON Web Token para leer su cabecera y su payload, ver cuándo caduca y verificar su firma, todo en tu propio dispositivo.
- El token no sale de aquí
- Control de caducidad
- Verificación de firma
- Al instante
Se decodifica en tu dispositivo. El token no se envía a ningún sitio ni se guarda: al recargar la página desaparece.
Cabecera
Carga útil
Claims explicados
| Claim | Valor | Significado |
|---|
Verificar la firma
Pega una clave pública PEM (-----BEGIN PUBLIC KEY-----), un JWK o un JWKS. Nunca pegues una clave privada en un sitio web.
Cómo decodificar un JWT
Pega y lee.
- 1
Pega el token
Con o sin el prefijo «Bearer». Las tres partes aparecen en colores distintos para que veas dónde empieza cada una.
- 2
Lee la cabecera y el payload
Ambos se muestran como JSON formateado. Los claims de tiempo se traducen a fechas y cada claim estándar va acompañado de su explicación.
- 3
Verifica la firma (opcional)
Introduce el secreto compartido o pega la clave pública para comprobar si el token es auténtico y no ha sido modificado.
Un decodificador que puedes usar con tokens reales
Porque un token de producción es una contraseña.
Decodificado en tu dispositivo
El token lo procesa JavaScript en tu navegador. No se nos envía, no se registra y no se guarda entre una visita y otra.
La caducidad, de un vistazo
Una etiqueta indica si el token sigue siendo válido, si ya ha caducado o si todavía no es válido, junto con el tiempo restante.
Claims explicados
iss, sub, aud, exp, nbf, iat, jti y los claims habituales de OpenID se describen junto a sus valores.
Verificación de firma real
Las firmas HMAC, RSA, RSA-PSS, ECDSA y Ed25519 se comprueban con la Web Crypto API.
PEM, JWK o JWKS
Pega la clave en el formato en que la publique tu proveedor de identidad; en un JWKS, la clave correspondiente se localiza por su kid.
Avisos que importan
Los tokens sin firma (alg: none) y los tokens cifrados (JWE) se reconocen y se explican, en lugar de fallar sin decir nada.
Resultado al instante
El resultado se actualiza mientras escribes. No hay botón que esperar ni recarga de página.
Gratis y sin registro
Sin cuenta, sin límites y sin marca de agua: en el móvil, la tableta o el ordenador.
Cómo está construido un JSON Web Token
Un JWT consta de tres partes codificadas en Base64URL y separadas por puntos: cabecera.payload.firma. La cabecera indica el algoritmo de firma, el payload contiene los claims (afirmaciones como quién es el usuario y hasta cuándo es válido el token) y la firma demuestra que la cabecera y el payload no se han alterado desde que el emisor los firmó.
Importante: el payload está codificado, no cifrado. Cualquiera que tenga el token puede leerlo, tal como hace esta herramienta, sin necesidad de ninguna clave. No pongas nunca contraseñas ni otros secretos en un JWT y trata los tokens como contraseñas: quien tenga uno válido puede actuar en nombre de su usuario hasta que caduque.
Decodificar no es lo mismo que verificar. Un servidor siempre debe comprobar la firma con el algoritmo esperado y, después, exp, nbf, el emisor y la audiencia antes de fiarse de un solo claim. Los tokens con alg: none no están firmados y deben rechazarse. Los algoritmos HMAC (HS256) usan un único secreto compartido para firmar y verificar; los algoritmos RSA y ECDSA (RS256, ES256) firman con una clave privada y verifican con una pública.
Claims registrados
| Claim | Nombre | Significado |
|---|---|---|
| iss | Issuer (emisor) | Quién creó y firmó el token |
| sub | Subject (sujeto) | A quién se refiere el token; normalmente, un ID de usuario |
| aud | Audience (audiencia) | La API o la aplicación a la que va destinado el token |
| exp | Expiration time (caducidad) | Tiempo Unix a partir del cual el token debe rechazarse |
| nbf | Not before (no antes de) | Tiempo Unix antes del cual el token no es válido |
| iat | Issued at (emitido en) | Tiempo Unix en el que se creó el token |
Consejos
- Convierte a mano un valor
expoiatcon el conversor de timestamp. - Decodifica una sola parte del token o un valor Base64URL con el codificador Base64.
- Da formato a un payload extenso o valídalo con el formateador JSON.
- Haz que los tokens de acceso duren poco (minutos, no días) y rota las claves de firma; publica las claves públicas como JWKS para que los clientes puedan seguir la rotación.
Preguntas frecuentes
¿No encuentras tu respuesta? Escríbenos: respondemos rápido.
¿Es seguro pegar aquí mi token?
El token lo decodifica código que se ejecuta en tu navegador; nunca se transmite a nuestro servidor ni se almacena. Aun así, un token de producción es una credencial: usa tokens de prueba siempre que puedas y no pegues nunca tokens en herramientas que los envíen a un servidor.
¿Se puede decodificar un JWT sin el secreto?
Sí. La cabecera y el payload solo están codificados en Base64URL, así que cualquiera puede leerlos. El secreto o la clave únicamente hacen falta para crear o verificar la firma.
¿Cómo verifico la firma?
Para HS256/384/512, introduce el secreto compartido. Para tokens RS, PS, ES y EdDSA, pega la clave pública del emisor en formato PEM, JWK o JWKS. El resultado indica si la firma coincide.
¿Qué significa «alg: none»?
Que el token no lleva ninguna firma, de modo que cualquiera puede falsificarlo. Las bibliotecas deben rechazar estos tokens salvo que se esperen de forma explícita, y esta herramienta los señala.
¿Por qué mi token aparece como caducado?
El claim exp contiene una marca de tiempo Unix en segundos. Si ese instante ya ha pasado según el reloj de tu dispositivo, el token está caducado. Un reloj del sistema mal ajustado da un veredicto erróneo.
¿Qué diferencia hay entre JWT, JWS y JWE?
JWT es el formato de los claims. Un JWS es un token firmado con tres partes: lo que suele entenderse por «JWT». Un JWE es un token cifrado con cinco partes cuyo contenido no puede leerse sin la clave de descifrado.
Más herramientas gratuitas para desarrolladores
Codifica, formatea, prueba, convierte y genera: pequeñas herramientas que funcionan en tu navegador y dejan tus datos en tu dispositivo.