Saltar al contenido
nestoo
  • ¿Cuál es mi IP?Tu IP pública IPv4 e IPv6, tu ubicación y tu proveedor de internet.Red e IP
  • Búsqueda de IPUbicación, proveedor y red de cualquier dirección IP.Red e IP
  • Consulta DNSRegistros DNS (A, AAAA, MX, TXT, NS…) de cualquier dominio.Red e IP
  • Consulta WHOISTitular, registrador y fecha de expiración de cualquier dominio o IP.Red e IP
  • Comprobador de puertosComprueba si un puerto está abierto en tu IP o en un servidor.Red e IP
  • Comprobador de cabeceras HTTPCabeceras, códigos de estado y redirecciones de cualquier URL.Red e IP
  • Comprobador SSLValidez, expiración y cadena del certificado de cualquier sitio web.Red e IP
  • Generador de contraseñasContraseñas seguras y aleatorias, generadas en tu propio navegador.Contraseñas y seguridad
  • Comprobador de seguridad de contraseñasCuánto se tardaría en descifrar una contraseña y si se ha filtrado.Contraseñas y seguridad
  • Generador de hashesHashes MD5, SHA-1, SHA-256, SHA-512 y CRC32 de textos o archivos.Contraseñas y seguridad
  • Formateador de JSONFormatea, valida y minifica JSON; señala dónde está cada error.Herramientas para desarrolladores
  • Codificador/decodificador Base64Codifica texto o archivos en Base64 y vuelve a decodificarlos.Herramientas para desarrolladores
  • Codificador/decodificador de URLCodifica y decodifica URL y cadenas de consulta, y analiza enlaces.Herramientas para desarrolladores
  • Decodificador de JWTLee la cabecera y los claims de un JSON Web Token.Herramientas para desarrolladores
  • Generador de UUIDIdentificadores UUID v4 aleatorios y v7 ordenados por tiempo.Herramientas para desarrolladores
  • Conversor de marcas de tiempo UnixConvierte marcas de tiempo Unix en fechas y fechas en tiempo epoch.Herramientas para desarrolladores
  • Conversor binarioTraduce texto a binario y convierte números entre bases.Herramientas para desarrolladores
  • Contador de palabrasCuenta palabras, caracteres y oraciones, y calcula el tiempo de lectura.Herramientas de texto
  • Conversor de mayúsculas y minúsculasMAYÚSCULAS, minúsculas, Tipo Título, camelCase, snake_case y más.Herramientas de texto
  • Comparador de textosCompara dos textos y resalta las diferencias.Herramientas de texto
  • Generador de códigos QRCódigos QR gratis para enlaces, texto, wifi y contactos, en PNG o SVG.Herramientas para el día a día
  • Calculadora de porcentajesPorcentaje de un número, variación porcentual, aumentos y disminuciones.Herramientas para el día a día
  • Conversor de unidadesConvierte longitud, peso, temperatura, volumen, datos y más.Herramientas para el día a día

Decodificador de JWT

Pega un JSON Web Token para leer su cabecera y sus claims, ver si ha expirado y comprobar su firma. La decodificación se hace en tu navegador, así que el token nunca sale de tu dispositivo.

Se decodifica en tu navegador. El token, el secreto y las claves nunca se envían a ninguna parte.

Funciona en tu navegador. Lo que escribes nunca sale de tu dispositivo.

Cómo se usa

  1. 1Pega el token en el cuadro, con o sin el prefijo «Bearer». La cabecera y el payload se decodifican mientras escribes.
  2. 2Mira la línea de estado: indica si el token es válido, ha expirado o todavía no es válido, según sus claims exp y nbf.
  3. 3Lee los claims estándar (emisor, sujeto, audiencia y fechas), con las marcas de tiempo convertidas en fechas de tu zona horaria.
  4. 4Para comprobar la firma, escribe el secreto compartido en los tokens HS256, o pega la clave pública o el conjunto de JWK en RS256, ES256 y otros algoritmos de par de claves.

Qué contiene un JWT

Un JSON Web Token son tres partes codificadas en Base64URL y unidas por puntos: header.payload.signature. La cabecera indica cómo está firmado el token, por ejemplo, {"alg":"HS256","typ":"JWT"}. El payload contiene los claims, es decir, declaraciones sobre el usuario y el token, como un ID de usuario, sus roles o una fecha de expiración. La firma demuestra que las dos primeras partes proceden de quien tiene la clave y que no se han modificado.

Base64URL es una codificación, no un cifrado: cualquiera que tenga el token puede leer su payload, exactamente como hace esta herramienta. No pongas nunca contraseñas ni otros secretos en un JWT. Si el contenido debe ser confidencial, el emisor tiene que usar un token cifrado (JWE), que tiene cinco partes y solo se puede leer con la clave adecuada.

Claims estándar y expiración

El RFC 7519 define siete claims registrados. iss (issuer, emisor) indica quién creó el token; sub (subject, sujeto), a quién se refiere (normalmente, un ID de usuario), y aud (audience, audiencia), a qué servicio va destinado. exp (expiration time, fecha de expiración), nbf (not before, no antes de) e iat (issued at, fecha de emisión) son marcas de tiempo en segundos desde el 1 de enero de 1970, y jti es un ID único que permite a un servidor detectar si se reutiliza un token.

Un servidor debe rechazar un token después de su fecha exp y antes de su fecha nbf. Una vida útil corta (a menudo de 5 a 60 minutos en los tokens de acceso) limita los daños si roban un token; por eso las aplicaciones usan tokens de actualización (refresh tokens) para obtener otros nuevos.

Cómo comprobar la firma

Al decodificar un token ves lo que afirma; solo la firma te dice si puedes creerlo. HS256, HS384 y HS512 usan un secreto compartido que conocen tanto el emisor como el servidor. RS256, PS256, ES256, EdDSA y otros algoritmos similares usan un par de claves: el emisor firma con su clave privada y cualquiera puede verificar la firma con la clave pública. Los proveedores de identidad publican sus claves públicas como un conjunto de JWK, a menudo en una URL que termina en /.well-known/jwks.json.

La verificación se hace localmente con la API Web Crypto de tu navegador, y nada de lo que pegas se envía a ninguna parte. Aun así, trata con cuidado los secretos de producción y recuerda que nunca hace falta una clave privada para verificar un token, así que pega solo claves públicas.

Preguntas frecuentes

¿Es seguro pegar aquí un JWT?

Sí. El token se decodifica y se verifica en tu navegador, y nunca se envía a nestoo ni a nadie más. Ten en cuenta que un token de acceso válido funciona como una contraseña temporal: cualquiera que lo copie puede usarlo hasta que expire, así que no compartas tokens vigentes en chats ni en tickets de soporte.

¿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 sin ninguna clave. Para crear una firma válida hace falta el secreto o la clave privada, y para verificarla, el secreto o la clave pública.

¿Por qué mi token muestra «Firma no válida»?

Normalmente, porque el secreto o la clave no son los correctos: una clave de otro entorno, un secreto que primero hay que decodificar de Base64 o una clave pública con otro kid. También ocurre cuando el token se modifica o se corta al copiarlo. Para los tokens de un proveedor de identidad, usa el conjunto de JWK actual del proveedor.

¿Qué diferencia hay entre JWS y JWE?

Un JWS es un token firmado con tres partes: cualquiera puede leerlo, pero nadie puede modificarlo sin invalidar la firma. Un JWE es un token cifrado con cinco partes, y solo quien tiene la clave de descifrado puede leer su contenido. La mayoría de los tokens que la gente llama JWT son JWS.

¿Qué significan exp, iat y nbf?

Son fechas expresadas en segundos desde el 1 de enero de 1970, lo que se conoce como tiempo Unix. exp es cuándo expira el token; iat, cuándo se emitió, y nbf, el momento antes del cual no se debe aceptar. Esta herramienta las muestra como fechas de tu zona horaria e indica cuánto tiempo ha pasado o cuánto falta.