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.

Cómo funciona

Cómo decodificar un JWT

Pega y lee.

  1. 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. 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. 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.

Por qué ToolCMB

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

ClaimNombreSignificado
issIssuer (emisor)Quién creó y firmó el token
subSubject (sujeto)A quién se refiere el token; normalmente, un ID de usuario
audAudience (audiencia)La API o la aplicación a la que va destinado el token
expExpiration time (caducidad)Tiempo Unix a partir del cual el token debe rechazarse
nbfNot before (no antes de)Tiempo Unix antes del cual el token no es válido
iatIssued at (emitido en)Tiempo Unix en el que se creó el token

Consejos

  • Convierte a mano un valor exp o iat con 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

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.

Ver todas las herramientas