CoderTools

Codificador/Decodificador JWT

Decodifica, verifica y genera tokens JWT de forma segura

JWT decodificado

Encabezado


                        

Carga útil


                        

Firma


                        

Guía Completa sobre JSON Web Tokens (JWT)

¿Qué es JWT?

JSON Web Token (JWT) es un estándar abierto (RFC 7519) que define una forma compacta y autónoma de transmitir información de forma segura entre partes como un objeto JSON. Esta información puede ser verificada y confiable porque está firmada digitalmente.

La Estructura de un JWT

Un JWT consta técnicamente de tres partes separadas por puntos (.), que son:

xxxxx.yyyyy.zzzzz
  • Cabecera (Header) : La cabecera consta típicamente de dos partes: el tipo de token (JWT) y el algoritmo de firma utilizado, como HMAC SHA256 o RSA.
  • Carga útil (Payload) : La carga útil contiene las reclamaciones (claims). Las reclamaciones son declaraciones sobre una entidad (típicamente el usuario) y datos adicionales.
  • Firma (Signature) : Para crear la parte de la firma, debe tomar la cabecera codificada, la carga útil codificada, un secreto, el algoritmo especificado en la cabecera, y firmarlo.

Algoritmos Soportados

Esta herramienta soporta decodificación y verificación para todos los algoritmos estándar y generación para los simétricos:

  • HS256: HS256 (HMAC SHA-256): Simétrico. Requiere una clave secreta compartida.
  • HS384: HS384: Simétrico. Usa un hash de 384 bits.
  • HS512: HS512: Simétrico. El más seguro para firmas simétricas.
  • RS256: RS256 (RSA SHA-256): Asimétrico. Clave privada para firmar, pública para verificar.
  • RS384: RS384: Asimétrico.
  • RS512: RS512: Asimétrico. Máxima seguridad RSA.

Entendiendo los Claims JWT

Los claims son piezas de información. Los claims registrados estándar incluyen:

  • iss (Issuer): iss (Issuer): Identifica al emisor del JWT.
  • sub (Subject): sub (Subject): Identifica al sujeto del JWT (ej: ID de usuario).
  • aud (Audience): aud (Audience): Identifica a los destinatarios previstos.
  • exp (Expiration Time): exp (Expiration): Identifica el tiempo de expiración.
  • nbf (Not Before): nbf (Not Before): Tiempo antes del cual el token no es válido.
  • iat (Issued At): iat (Issued At): Tiempo de emisión.
  • jti (JWT ID): jti (JWT ID): Identificador único.

¿Cuándo usar JWT?

  • Autorización: Escenario más común. Tras el login, cada petición incluye el JWT, permitiendo acceso a rutas y recursos.
  • Intercambio de Información: Transmisión segura de información entre partes con verificación de identidad.
  • Sesiones sin estado: Los JWT contienen todos los datos necesarios, reduciendo consultas a la base de datos.
  • SSO Cross-Domain: Ideales para Single Sign-On entre dominios.
  • Seguridad API: Protección de APIs RESTful.

Mejores Prácticas de Seguridad: 1. No ponga datos sensibles en el payload. 2. Verifique siempre la firma. 3. Use 'exp' para limitar la vida del token. 4. Use HTTPS. 5. Almacene los tokens de forma segura (Cookies HttpOnly recomendadas sobre LocalStorage).

Referencias

Preguntas Frecuentes (FAQ)

¿JWT es cifrado o codificación?

Los JWT estándar están codificados y firmados, NO cifrados. Cualquiera puede decodificar y leer el payload (Base64Url). La firma asegura la integridad, no la confidencialidad.

¿Dónde almacenar JWT en el cliente?

Las cookies `HttpOnly` son generalmente más seguras que `localStorage` contra XSS, aunque requieren protección contra CSRF.

¿Qué pasa si roban un JWT?

El ladrón puede hacerse pasar por el usuario hasta que el token expire. Use tiempos de expiración cortos (`exp`) y mecanismos de revocación.

¿Esta herramienta envía mis claves al servidor?

No. Todo se ejecuta en su navegador mediante JavaScript.

¿Puedo modificar el payload manualmente?

Puede, pero invalidará la firma. El servidor rechazará el token.

¿Diferencia entre HS256 y RS256?

HS256 es simétrico (clave compartida). RS256 es asimétrico (privada para firmar, pública para verificar). RS256 es mejor para sistemas distribuidos.

Menú Rápido

Sin herramientas recientes