Kuvron
Ver herramientas

Categorías

  • JSON9
  • Encoding8
  • Crypto5
  • Texto13
  • Números8
  • Tiempo4
  • Web & HTTP15
  • Colores6
  • Seguridad4
  • Imágenes6
  • Datos & SQL7
  • Código0
  • DevOps10
  • IA2
  • SEO & Meta0
  • Generadores4

¿Qué estás buscando?

Herramientas

  • Todas →
  • JSON →
  • Crypto →
  • Texto →
  • Encoding →
  • Data →

Legal

  • Acerca de →
  • Contacto →
  • Privacidad →
  • Términos →

Kuvron

Herramientas que funcionan cuando las necesitas.

© 2026 Kuvron · Hecho para desarrolladores.

ToolsEncodingJWT Decoder

JWT Decoder

Decodifica header, payload y claims de cualquier JWT

JWT de entrada

También podrías necesitar

Base64 Encode / DecodeHash GeneratorPassword Generator

¿Qué es JWT Decoder?

Los JSON Web Tokens (JWT) son el mecanismo de autenticación stateless más adoptado en APIs REST modernas. Es fundamental entender una distinción clave: decodificar un JWT no es lo mismo que validarlo. Decodificar significa leer el contenido del header y el payload — algo que cualquier persona con el token puede hacer porque no están cifrados, solo codificados en Base64URL (un proceso completamente reversible). Validar significa verificar que la firma criptográfica es correcta, lo cual requiere el secret HMAC o la clave pública RSA/ECDSA del servidor emisor. La especificación RFC 7515 distingue dos tipos: JWS (JSON Web Signature), que tiene 3 partes separadas por puntos (header.payload.signature) y es el tipo habitual en autenticación; y JWE (JSON Web Encryption), que tiene 5 partes y cifra el payload — si tu token tiene 5 partes, es un JWE y su contenido no es legible sin la clave de descifrado. El payload de un JWS contiene claims: el estándar RFC 7519 define `exp` (expiration time — timestamp Unix de expiración), `iat` (issued at — timestamp de emisión), `nbf` (not before — desde cuándo es válido), `sub` (subject — identificador del usuario), `iss` (issuer — emisor) y `aud` (audience). El header y el payload NO están cifrados — solo codificados en Base64URL. Cualquier persona con el token puede leer su contenido; la firma solo garantiza que no fue alterado, no que sea confidencial. Esta herramienta decodifica el header y el payload al instante, sin necesidad de la clave secreta, y convierte automáticamente `exp`, `iat` y `nbf` a fechas legibles.

Preguntas frecuentes

¿Se verifica la firma del JWT aquí?

No. La herramienta solo decodifica el header y el payload (ambos en Base64URL). La firma criptográfica NO se verifica — para eso necesitas el secret (HMAC) o la clave pública (RSA/ECDSA). Nunca confíes en el contenido de un JWT sin verificar la firma en el backend.

¿Qué son los claims estándar (exp, iat, nbf)?

`exp` (expiration time) indica cuándo expira el token. `iat` (issued at) es cuando fue emitido. `nbf` (not before) indica desde cuándo es válido. Son timestamps Unix (segundos desde 1970-01-01). La herramienta los convierte automáticamente a fechas legibles.

¿Es seguro pegar un JWT de producción?

El procesamiento ocurre 100% en tu navegador — ningún dato se envía a servidores. Aun así, evita pegar tokens de producción con datos sensibles en cualquier herramienta externa. Para debugging en producción, usa herramientas internas o tokens de corta duración.

¿Por qué el JWT tiene tres partes separadas por puntos?

El formato es `header.payload.signature`. El header y el payload son JSON codificado en Base64URL (no cifrado — solo codificado). La firma es generada por el servidor usando el secret y permite verificar que el contenido no fue alterado.

¿Cuál es la diferencia entre Base64 y Base64URL?

Base64URL es una variante de Base64 segura para URLs: reemplaza `+` por `-` y `/` por `_`, y elimina el padding `=` al final. JWT usa Base64URL precisamente para que el token pueda usarse en URLs, headers HTTP y parámetros sin necesidad de encoding adicional.

¿Puedo decodificar un JWT de producción aquí?

Sí, técnicamente el procesamiento ocurre en tu navegador y el token no se envía a ningún servidor. Sin embargo, como buena práctica evitá pegar tokens de producción con larga duración en cualquier herramienta externa. Para inspeccionar el payload de un token real, preferí usar tokens de corta duración o invalidar el token después de depurar. Una alternativa: `JSON.parse(atob(token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/')))` directamente en las DevTools — nunca sale del entorno.

¿Por qué mi token tiene 5 partes y no 3?

Un token con 5 partes separadas por puntos es un JWE (JSON Web Encryption), definido en el RFC 7516. A diferencia del JWS (3 partes: header.payload.signature), el JWE cifra el payload — sus partes son header.encrypted_key.iv.ciphertext.authentication_tag. El contenido de un JWE no es legible sin la clave de descifrado del servidor. Esta herramienta trabaja con JWS, que es el tipo habitual en autenticación. Si recibís un token de 5 partes, necesitás la clave de descifrado para acceder al payload.