Decodificador JWT (contenido, caducidad y firma)
Pega un JWT y lee el encabezado y el payload, con la caducidad como fecha y hora. Si pones la clave, también comprueba la firma.
JWT
0 caracteres · 0 líneas
Todo se procesa en este dispositivo. Lo que escribes no se envía a ningún sitio.
Un JWT puede servir como llave para iniciar sesión. No lo pegues en otros sitios de los que no te fíes.
Contenido decodificado
Aquí aparece el resultado
¿Te resultó útil? Nos encantaría que lo compartieras
¿Algo no funciona o tienes una idea para mejorarlo?
Cómo se usa
1. Pega el JWT
Toca «Pegar», encima del cuadro de arriba, para poner el JWT que copiaste. No pasa nada si lleva «Bearer» delante o comillas alrededor. Si solo quieres probar, toca «Ejemplo».
Haz clic en «Pegar», encima del cuadro de la izquierda, para poner el JWT que copiaste. No pasa nada si lleva «Bearer» delante o comillas alrededor. Si solo quieres probar, haz clic en «Probar un ejemplo».
2. Mira el contenido
En «Contenido decodificado», más abajo, aparece una etiqueta como «Vigente» o «Caducado», y debajo, la caducidad y la fecha de emisión con la hora de este dispositivo y frases como «dentro de 2 años» o «hace 3 horas». Más abajo salen el JSON del encabezado y del payload; toca «Copiar payload» para copiar el JSON ya formateado.
Encima del cuadro de la derecha aparece una etiqueta como «Vigente» o «Caducado», y debajo, la caducidad y la fecha de emisión con la hora de este dispositivo y frases como «dentro de 2 años» o «hace 3 horas». Más abajo salen el JSON del encabezado y del payload; haz clic en «Copiar payload» para copiar el JSON ya formateado.
3. Comprueba la firma
En «Comprobar la firma», al final de todo, pon la clave secreta si es HS256 o similar, o la clave pública si es RS256, ES256, etc. En cuanto la pones aparece «La firma es correcta» o «La firma no coincide». La clave del token de ejemplo es papatto-sample-secret.
En «Comprobar la firma», abajo a la izquierda, pon la clave secreta si es HS256 o similar, o la clave pública si es RS256, ES256, etc. En cuanto la pones aparece «La firma es correcta» o «La firma no coincide». La clave del token de ejemplo es papatto-sample-secret.
Ideal para
Averiguar por qué se cierra la sesión de repente
Pega el token y verás la caducidad (exp) y la fecha de emisión (iat) con la hora de este dispositivo y frases como «hace 5 minutos». Si ha caducado, la etiqueta lo dice al momento, así que es fácil detectar un reloj desfasado o una caducidad demasiado corta.
Desarrolladores web y equipos de soporte
Ver qué lleva un token
Lee como JSON formateado el usuario (sub), el emisor (iss), el destinatario (aud) y las claims propias, como los permisos. También puedes pegar tal cual el texto con «Bearer» que copiaste de las herramientas de desarrollo.
Quien crea o prueba APIs
Comprobar si la clave de firma es la correcta
Pon la clave secreta de HS256 o la clave pública (PEM o JWK) de RS256 o ES256 y comprueba al momento si la firma se hizo con esa clave. Sirve para descartar un error de configuración de claves cuando la autenticación falla.
Desarrolladores que trabajan con autenticación
No sacar tokens reales de tu dispositivo
Tanto la lectura como la comprobación se hacen dentro del navegador de este dispositivo. Los tokens y las claves no se envían a ningún servidor, así que no le das tus credenciales al servidor de nadie.
Quien cuida la seguridad
Antes de usarlo
- El contenido de un JWT no está cifrado: cualquiera puede leerlo. No metas en él contraseñas ni nada que no deba verse.
- De un JWT cifrado (JWE) no se puede leer el contenido. Solo se puede leer el encabezado.
- No descarga claves públicas por su cuenta (desde la URL de un JWKS). Pega tú la clave (esta página no se conecta a ningún sitio).
Sobre JWT
Un JWT (JSON Web Token) es un texto que representa los datos y permisos de quien ha iniciado sesión, en 3 partes: «encabezado.payload.firma». El encabezado y el payload son solo JSON pasado a la variante URL-safe de {tool:base64}, así que cualquiera puede revertirlos y leerlos. Lo que impide que se manipule es la firma del final.
Esta herramienta muestra exp (caducidad), nbf (válido desde) e iat (emisión) del payload como fecha y hora en la zona horaria de este dispositivo y con frases como «dentro de 3 horas», y avisa con una etiqueta si ha caducado. Las fechas que son solo un número también se pueden convertir con {tool:unix-time}. Si pones la clave, también comprueba si es correcta la firma HS256, RS256, PS256, ES256, EdDSA, etc., solo dentro del navegador.
Preguntas frecuentes
Respuestas a las dudas más habituales antes de empezar.
¿Se envía a algún sitio el JWT que pego?
No. Tanto la lectura como la comprobación de la firma se hacen solo en el navegador de tu dispositivo, y ni el JWT ni la clave se envían a un servidor. Un JWT puede servir como llave para iniciar sesión, así que no lo pegues en otros sitios si no sabes qué hacen con él.
¿Cómo veo la caducidad (exp)?
La etiqueta de encima de «Contenido decodificado» indica «Vigente», «Caducado», «Aún no válido» o «Sin caducidad». En la lista de abajo, la fecha de caducidad aparece en la zona horaria de este dispositivo, con el tiempo que falta o que ha pasado, como «dentro de 3 horas» o «hace 2 días».
¿Se puede comprobar la firma?
Sí. Para HS256, HS384 y HS512, pon la clave secreta (en texto o en Base64); para RS256, PS256, ES256, EdDSA y otros, la clave pública. Al momento aparece «La firma es correcta» o «La firma no coincide».
¿Qué formatos de clave pública admite?
Admite PEM que empieza por «-----BEGIN PUBLIC KEY-----», «-----BEGIN RSA PUBLIC KEY-----», certificados (-----BEGIN CERTIFICATE-----), JWK y JWK Set ({"keys": […]}). Con un JWK Set, elige la clave con el mismo kid que el encabezado.
¿Se puede leer aunque lleve «Bearer» delante?
Sí. Quita automáticamente «Authorization: Bearer», los espacios, los saltos de línea y las comillas de alrededor antes de leerlo.
Aparece «JWT sin firma (alg: none)»
Es un token sin firma, cuyo contenido puede cambiar cualquiera. Si no es para pruebas, revisa la configuración del servidor. Un servidor que lo use para iniciar sesión u otras cosas no debe aceptar JWT con alg none.
Aparece «JWT cifrado (JWE)»
Un JWT dividido en 5 partes por «.» es un JWE, con el contenido cifrado. No se puede leer sin la clave privada de quien lo recibe, así que esta herramienta solo muestra el encabezado (el tipo de cifrado, etc.).
Aparece «No se puede leer como JWT»
Se perdió una parte al copiarlo o tiene caracteres que no se usan en un JWT. Se indica qué parte no se puede leer y el lugar se marca en naranja en el cuadro, así que revisa ahí.
¿El contenido de un JWT está cifrado?
No. El encabezado y el payload solo se sustituyen por caracteres según una tabla fija (base64url), así que cualquiera puede leerlos. No metas en ellos contraseñas ni datos personales.
¿Es gratis?
Sí, es gratis. Sin registro y sin anuncios.
Más herramientas
- Convertir ancho completo y medio
Convierte letras, números y katakana entre ancho completo y medio de una vez.
- Convertir hiragana y katakana
Convierte de una vez entre hiragana, katakana y kana de ancho medio. Los kanji, las letras y los números no cambian.
- Contador de caracteres para redes (X, Instagram, YouTube)
Cuenta cuántos caracteres te quedan hasta el límite de X, Instagram, YouTube y otras redes, a la manera de cada una. También palabras y líneas.
- Formatear JSON
Ordena el JSON para que se lea bien o compáctalo en una línea. Si hay un error, te muestra dónde.
- Codificar y decodificar URL
Convierte acentos, espacios y símbolos al formato de URL (como %C3%B1) o devuelve el texto original.
- Generador de contraseñas
Elige la longitud y los caracteres, y crea al momento contraseñas difíciles de adivinar.