Saltar al contenido

JWT Decoder & Encoder · Security

Decodifica, verifica y firma JSON Web Tokens en tu navegador.

Pega un token header.payload.signature para leer sus claims y verificar la firma con un secreto, PEM, JWK o JWKS — o cambia de pestaña para firmar tu propio token y generar claves de prueba. Nada sale nunca de la pestaña.

Se ejecuta en tu navegador HS · RS · PS · ES · EdDSA Sin registro Actualizado el 26 jul 2026

Área de pruebas del JWT Decoder & Encoder

Examples

Results update as you type — press Enter to run now.

Treat pasted keys and secrets as live credentials — clipboard history and screenshots can leak them.

Everything stays in your browser — nothing is sent anywhere. Verifies HS/RS/PS/ES 256–512 and EdDSA against a shared secret, a PEM BEGIN PUBLIC KEY, a JWK, or a full JWKS (matched by kid).

Snapshots save only the token (never keys) to this browser's localStorage — nothing leaves your machine.

Result

No share links on this tool — inputs may be secrets.

Paste a JWT or pick an example to see its header, payload, claims, and signature decoded here.

La brecha

Un token son solo tres cadenas — hasta que un claim está mal.

Depurar la autenticación significa mirar fijamente un eyJ… blob opaco y adivinar. ¿Está el token expirado? ¿Es correcta la audiencia? ¿Lo firmó el emisor con la clave que crees que usó? Las respuestas están todas ahí dentro — codificadas en base64url, a un punto de distancia — pero leerlas a simple vista es propenso a errores, y muchos decodificadores en línea envían tu token a un servidor sin avisar. Lo mismo ocurre con los asistentes de IA: un token pegado en un chat acaba en el historial de conversaciones de un tercero — y posiblemente en su pipeline de entrenamiento. Nunca pegues un token de producción en un chat de IA. En su lugar, decodifícalo de forma local.

Este banco de trabajo de JWT convierte el blob en los hechos concretos que necesitas — el algoritmo del encabezado, cada claim con una explicación en lenguaje sencillo, la expiración en formato legible — y, cuando proporcionas el secreto, la clave pública, el JWK o el JWKS, confirma la firma con la Web Crypto API en los trece algoritmos JWS. También funciona en sentido inverso: edita el JSON del encabezado y de la carga útil, firma un token nuevo o genera un par de claves de prueba RSA / EC / Ed25519 — todo íntegramente del lado del cliente, por lo que es seguro usarlo incluso con tokens de producción.

¿Necesitas en su lugar los bytes sin procesar? El Base64 Encoder / Decoder maneja cargas útiles arbitrarias en base64 y base64url.

The Pipeline

Cómo funciona.

Cinco pasos deterministas se ejecutan con cada pulsación de tecla — todo dentro de tu pestaña del navegador, con la firma y la verificación gestionadas por la Web Crypto API.

  1. Divide el token.

    El JWT compacto se divide por sus dos puntos en los segmentos de encabezado, carga útil y firma.

  2. Decodifica las partes.

    Los segmentos de encabezado y carga útil se decodifican desde base64url de vuelta a sus objetos JSON originales.

  3. Lee los claims.

    Se exponen los claims estándar con explicaciones en lenguaje sencillo, y exp, nbf e iat se convierten en horas legibles con una comprobación de expiración.

  4. Verifica la firma.

    Proporciona un secreto, una clave pública PEM, un JWK o un JWKS y la firma HS / RS / PS / ES / EdDSA se recalcula y se comprueba localmente.

  5. Firma tu propio token.

    Cambia a Encode & sign para crear un token desde JSON editable — o genera antes un par de claves de prueba nuevo.

Referencia del token

Anatomía de un JWT.

Tres segmentos en base64url unidos por puntos. El encabezado y la carga útil son JSON; la firma se calcula sobre los dos primeros y es lo que la verificación vuelve a comprobar.

header.payload.signature

Los dos puntos dividen el token en tres partes. La firma cubre los bytes de header.payload — cambia cualquiera de ellos y ya no coincide.

jwt-structure
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9   ← header   (base64url JSON)
.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6...   ← payload  (base64url JSON)
.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQ   ← signature (base64url bytes)

      header . payload . signature
      └─────── signed input ──────┘ ⇒ signature

Claims comunes

Una leyenda para los campos registrados del encabezado y la carga útil. Las horas como exp son NumericDate — segundos desde la época Unix.

jwt-claims
alg   header   signing algorithm, e.g. HS256 / RS256
typ   header   token type, usually "JWT"
kid   header   key id — which key signed this token

iss   payload  issuer — who created the token
sub   payload  subject — who the token is about
aud   payload  audience — who the token is for
exp   payload  expiration time (NumericDate, seconds)
nbf   payload  not-before time (NumericDate, seconds)
iat   payload  issued-at time (NumericDate, seconds)
jti   payload  unique token id

Siguiente paso

¿Ya tienes los bytes? Codifícalos, decodifícalos y hazles hash.

Una vez que un token se lee correctamente, baja un nivel: el Base64 Encoder / Decoder maneja las cargas útiles en base64url con las que se construyen los JWT, y el Hash Generator calcula los digests SHA que están detrás de la firma HMAC — ambos enteramente en tu navegador.

verify.txt
HMACSHA256(
  base64url(header) + "." +
  base64url(payload),
  secret
)  ⇒  signature ✓

FAQ

Tus preguntas, respondidas.

Toca una pregunta para desplegar la respuesta.

Un JSON Web Token (JWT) es una credencial compacta y segura para URL formada por tres partes en base64url separadas por puntos: un encabezado, una carga útil de claims y una firma — escrita como header.payload.signature. El encabezado indica el algoritmo de firma, la carga útil transporta claims como para quién es el token y cuándo expira, y la firma permite al destinatario confirmar que el token fue emitido por una parte de confianza y no ha sido manipulado. Los JWT se usan ampliamente como tokens de acceso y de identidad en OAuth 2.0 y OpenID Connect.

No. La decodificación y cualquier verificación de firma se ejecutan 100 % del lado del cliente en tu pestaña: no hay servidor, ni cuenta, ni registros ni peticiones de red. El token que pegas y el secreto o la clave pública que proporcionas permanecen en la memoria de esta página y nunca se suben. Puedes decodificar tokens sin conexión.

Sí, de forma opcional y local. Pega un secreto compartido para un token HMAC (HS256 / HS384 / HS512) o una clave pública para uno asimétrico — RS256–512, PS256–512, ES256–512 o EdDSA — y la herramienta recalcula la firma sobre los bytes de header.payload usando la Web Crypto API directamente en tu navegador, y luego informa si es válida o no válida. La clave puede ser un bloque PEM "BEGIN PUBLIC KEY", un JWK individual o un JWKS completo (la clave correcta se elige mediante el kid del encabezado). Si dejas la clave en blanco, simplemente decodifica sin comprobar la firma.

Sí. Cambia a la pestaña "Encode & sign" (codificar y firmar), edita el JSON del encabezado y de la carga útil, elige un algoritmo y proporciona un secreto (para HS256/384/512) o una clave privada PKCS8 / un JWK privado (para RS, PS, ES o EdDSA). El token se firma en vivo en tu navegador con la Web Crypto API — nada se genera en un servidor. También hay una pestaña "Generate keys" (generar claves) que crea secretos HMAC de prueba y pares de claves RSA / EC / Ed25519, exportados tanto en PEM como en JWK.

Los trece algoritmos de firma JWS que los navegadores pueden ejecutar de forma nativa: HS256, HS384 y HS512 (HMAC), RS256, RS384 y RS512 (RSASSA-PKCS1-v1_5), PS256, PS384 y PS512 (RSA-PSS), ES256, ES384 y ES512 (ECDSA sobre P-256, P-384 y P-521), y EdDSA (Ed25519, en los navegadores que lo admiten). Los tokens sin firmar con alg:"none" se decodifican — con una advertencia — pero nunca se crean aquí, y ES256K (secp256k1) no está disponible en la Web Crypto API.

Para desarrollo y pruebas, sí: las claves provienen del generador criptográficamente seguro de la Web Crypto API, se crean íntegramente en tu máquina y esta página nunca las transmite ni las almacena. Para producción, genera y guarda las claves en el KMS, HSM o gestor de secretos de tu plataforma — una pestaña del navegador no ofrece un almacenamiento seguro, y cualquier cosa que se muestra en pantalla puede acabar en capturas de pantalla o en el historial del portapapeles.

Son claims registrados estándar expresados como NumericDate (segundos desde la época Unix). exp (expiration time) es el instante después del cual el token debe rechazarse; nbf (not before) es el instante antes del cual no debe aceptarse; iat (issued at) es cuándo se creó el token. El decodificador convierte cada uno a una hora UTC legible y señala si el token está actualmente expirado o aún no es válido.

La decodificación ocurre solo en tu navegador, así que no se transmite nada — pero un JWT sigue siendo una credencial activa. Trátalo como una contraseña: pega únicamente un token que controles, prefiere un token de corta duración o de prueba, y recuerda que la carga útil está meramente codificada en base64url, no cifrada, por lo que cualquiera que tenga el token puede leer sus claims. Rota o revoca un token si sospechas que ha quedado expuesto en algún lugar. Esa precaución se aplica con doble motivo a los chatbots de IA: trata cualquier token pegado en una ventana de chat como expuesto, y rótalo.

Los JWT firmados estándar no están cifrados — el encabezado y la carga útil solo están codificados en base64url, así que cualquiera que tenga el token puede leer sus claims sin ninguna clave. La firma demuestra que el token no fue manipulado, pero no oculta el contenido. Por ello, nunca deberías almacenar contraseñas, datos personales o secretos dentro de los claims de un JWT.

Sí. Leer el encabezado y la carga útil no requiere ninguna clave porque los datos solo están codificados en base64url. El secreto o la clave pública solo se necesitan para verificar la firma — para confirmar que el token realmente provino del emisor esperado. Este decodificador te permite inspeccionar los claims tanto si proporcionas una clave como si no.

Pega el token en el JWT Decoder y observa la fila del claim exp. La herramienta convierte la marca de tiempo Unix sin procesar a una fecha UTC legible y señala automáticamente el token como expirado si la hora actual ha superado el valor de exp. Los claims iat (issued at) y nbf (not before) también se muestran con sus fechas en formato legible.

No. La decodificación solo revela el contenido del encabezado y la carga útil — no demuestra que el token sea auténtico. Para validar un token debes verificar su firma usando el secreto o la clave pública del emisor. Esta herramienta puede realizar esa comprobación localmente en el navegador, pero para las decisiones de autorización la firma siempre debe verificarse del lado del servidor antes de confiar en cualquier claim.

More free, private DevOps tools.

El JWT Decoder & Encoder es una de las herramientas de OpsCanopy — un dosel creciente de validadores, conversores y probadores basados en el navegador que nunca tocan un servidor.

29 herramientas gratuitas, todas pueden funcionar sin conexión — opscanopy.com funciona sin registro y sin subir nada.

Más seguridad y codificación: el Hash Generator y el Base64 Encoder / Decoder, o explora el directorio de herramientas completo.

Se proporciona tal cual por conveniencia; un JWT es una credencial activa, así que maneja y almacena los tokens siempre de forma segura. OpsCanopy es gratuito y abierto.