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.
Área de pruebas del JWT Decoder & Encoder
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.
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.
Treat pasted keys and secrets as live credentials — clipboard history and screenshots can leak them.
Signing happens in your browser with the Web Crypto API — keys never leave this page. The token is built from minified JSON, so whitespace in the editors never changes the signature. Need a key? Use the Generate keys tab.
Fill in the header, payload, and key to see the signed token here.
Generated locally with the Web Crypto API — nothing leaves your browser. Great for tests and local development; production keys belong in your platform's KMS or secret manager.
Pick a key type and press Generate — the key appears here as PEM and JWK, with copy buttons.
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.
-
Divide el token.
El JWT compacto se divide por sus dos puntos en los segmentos de encabezado, carga útil y firma.
-
Decodifica las partes.
Los segmentos de encabezado y carga útil se decodifican desde base64url de vuelta a sus objetos JSON originales.
-
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.
-
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.
-
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.
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.
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.
HMACSHA256(
base64url(header) + "." +
base64url(payload),
secret
) ⇒ signature ✓ FAQ
Tus preguntas, respondidas.
Toca una pregunta para desplegar la respuesta.
¿Qué es un JWT?
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.
¿Mi token o mi secreto salen alguna vez del navegador?
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.
¿Se verifica realmente la firma, y cómo?
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.
¿Puede esta herramienta también crear y firmar un JWT?
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.
¿Qué algoritmos de firma se admiten?
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.
¿Es seguro generar claves de firma en un navegador?
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.
¿Qué significan los claims exp, nbf e iat?
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.
¿Es seguro pegar aquí un token de producción?
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 tokens JWT están cifrados o solo codificados?
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.
¿Se puede decodificar un JWT sin la clave secreta?
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.
¿Cómo compruebo en línea si un token JWT ha expirado?
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.
¿Decodificar un JWT verifica o valida el token?
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.
Más en Seguridad
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.