Decodificar JWT: leer y verificar un JSON Web Token
Para decodificar un JWT, pega el token: la herramienta muestra lo que contiene un JSON Web Token – cabecera, payload y firma, con emisor, caducidad y validez en claro. Si introduces el secreto o la clave pública, incluso verifica la firma. El token no sale de tu navegador.
Fuente: §§ 2, 4.1 (Claims, NumericDate), IETF RFC 7519 – JSON Web Token (JWT). Actualizado: .
Cómo se calcula
Un JSON Web Token (JWT) transporta declaraciones (claims) entre dos partes; normalmente tras el inicio de sesión, como prueba de que «este usuario ha iniciado sesión». Tiene tres partes separadas por puntos: cabecera.payload.firma (RFC 7519, RFC 7515).
Cómo decodificar un JWT
- Pega el token en el campo superior (con o sin «Bearer»).
- La cabecera y el payload aparecen al instante como JSON legible, con la caducidad y el emisor debajo.
- Opcional: introduce la clave en «Secreto o clave pública» y la herramienta verifica la firma.
Qué contiene un token
- Cabecera: el algoritmo (
alg, p. ej. HS256 o RS256) y el tipo (typ). - Payload: los claims. Entre los registrados están
iss(emisor),sub(sujeto),aud(destinatario),exp(caducidad),nbf(no antes de),iat(emitido) yjti(ID). Las fechas son segundos desde 1970; la herramienta las muestra en UTC. - Firma: protege frente a modificaciones si el receptor la comprueba con la clave adecuada.
Importante: leer no es verificar
La cabecera y el payload solo están codificados en base64url, no cifrados. Cualquiera que vea un token puede leerlo: contraseñas u otros secretos no deben ir dentro. Sin comprobar la firma, el contenido no demuestra nada, porque cualquiera puede cambiarlo. La verificación aquí funciona con un secreto HMAC (HS256/384/512) y con clave pública (RS, PS, ES); un token con alg: none no está firmado.
Protección frente a «algorithm confusion»
Un ataque conocido entrega al servidor un token con alg: HS256 firmado usando la clave pública como secreto. Por eso la herramienta se niega a verificar si se introduce una clave pública o privada como secreto HS (la RFC 8725 aconseja no tomar nunca el algoritmo solo del token).
Límites
- Los tokens cifrados (JWE, cinco partes) no se pueden leer sin la clave; solo se muestra la cabecera.
- No se incluye la verificación para EdDSA ni para certificados. Que un token sea válido para tu aplicación depende del emisor, el destinatario y la caducidad, que tu servidor debe comprobar por su cuenta.
- Los tokens de producción solo deben ir a dispositivos de confianza. Aquí no se envía ni guarda nada, pero un token caducado o de prueba es más seguro.
Preguntas frecuentes
¿Qué es un JWT?
Un JSON Web Token es una cadena compacta y segura para URL con tres partes (cabecera, payload, firma). Transporta claims como el ID de usuario o la caducidad y suele usarse como prueba de acceso tras iniciar sesión.
¿Puede cualquiera leer el contenido de un JWT?
Sí. La cabecera y el payload solo están codificados en base64url, no cifrados. Solo la firma protege frente a modificaciones, no frente a la lectura. Por eso no metas secretos en un JWT.
¿Cómo verifico la firma de un JWT?
En «Secreto o clave pública» introduce el secreto para HS256/384/512, o la clave pública en PEM o JWK para RS256, PS256 o ES256. El resultado aparece en «Firma».
¿Es seguro pegar mi token en un decodificador online?
Este decodificador trabaja por completo en tu navegador y no envía nada. Aun así, un token válido es una prueba de acceso. Usa tokens de prueba o ya caducados siempre que puedas.
¿Qué significan exp, iat y nbf?
exp es el instante en que caduca el token, iat el de su emisión y nbf el instante desde el que es válido. Los tres son segundos desde el 1 de enero de 1970 UTC.
¿Por qué la herramienta dice «sin verificar»?
Sin clave no hay con qué comprobar la firma, así que el contenido solo se lee. Los algoritmos no compatibles o los formatos de clave inadecuados también omiten la comprobación.
Fuentes y base legal
- §§ 2, 4.1 (Claims, NumericDate): IETF RFC 7519 – JSON Web Token (JWT)
- §§ 3, 7.1, Anhang A.1 (Testbeispiel HS256): IETF RFC 7515 – JSON Web Signature (JWS)
- § 3 (HS, RS, ES, PS): IETF RFC 7518 – JSON Web Algorithms (JWA)
- §§ 2.1, 3.1 (Algorithmus-Verwechslung, Algorithmus pruefen): IETF RFC 8725 – JSON Web Token Best Current Practices
- W3C Web Cryptography API (SubtleCrypto.verify)
Última actualización: · Principios editoriales
Herramientas relacionadas
- Codificar y decodificar Base64Codifica y decodifica Base64 y Base64url con UTF-8 correcto, y también URL encode/decode (codificación por porcentaje). Errores claros, todo en tu navegador.
- Generador de hash: SHA-256, SHA-512, SHA-1, MD5Calcula hashes SHA-256, SHA-384, SHA-512, SHA-1 y MD5 de textos o archivos y verifica sumas de comprobación, en tu navegador, sin subir nada y gratis.
- Formateador, validador y minificador de JSONValida JSON según la RFC 8259 con línea, columna y explicación clara del error. Formatea o minifica, ordena claves y copia. Funciona en tu navegador.
- Conversor de timestamp UnixConvierte un timestamp Unix a fecha y al revés: detecta segundos, milisegundos, micro y nanosegundos; muestra UTC, hora local, ISO 8601 y más formatos.
- Generador de UUID: crea y valida UUID v4 y v7Genera UUID en línea: versión 4 (aleatoria) o versión 7 (ordenada por tiempo), hasta 1000 a la vez. Valida un UUID y lee su versión, variante y fecha.
- Generador de contraseñasGenera contraseñas aleatorias seguras y frases de contraseña memorables con entropía en bits, directamente en tu navegador: nada se envía ni se guarda.
- Cuál es mi dirección IPMuestra al instante tu dirección IP pública, detecta si es IPv4 o IPv6 y explica la diferencia. Gratis: tu IP no se guarda.
- JSON escape / unescapeJSON escape y unescape online: convierte un texto en una cadena JSON válida con comillas, barras invertidas y saltos de línea escapados, o al revés.
- Comprobar redirecciones de una URLComprobar redirecciones online: cada salto de una URL con su código (301, 302, 307, 308), destino y tiempo. Detecta cadenas, bucles y errores de HTTPS.