Generadores

Generador de JWT (JSON Web Token) Online

·Equipo Solvya·2 min de lectura

Genera y decodifica JWT firmados con HS256/384/512. Header y payload JSON personalizables. Local y seguro.

ℹ️ Este contenido es educativo e informativo. No constituye asesoramiento profesional. Consulta con un especialista antes de tomar decisiones.

¿Qué es un JWT (JSON Web Token)?

Un JWT (JSON Web Token) es un estándar abierto (RFC 7519) para transmitir información de forma segura entre partes como un objeto JSON. Se usa principalmente para autenticación y autorización en APIs y aplicaciones web modernas.

Un JWT consta de tres partes separadas por puntos:

xxxxx.yyyyy.zzzzz
Parte Contenido Codificación
Header Algoritmo y tipo de token Base64URL
Payload Claims (datos: usuario, permisos, expiración) Base64URL
Signature Firma criptográfica del header + payload Base64URL

Importante: El header y payload no están cifrados, solo codificados en Base64URL. Cualquiera puede leerlos. La firma garantiza que el token no ha sido manipulado.


Algoritmos soportados

Esta herramienta implementa HMAC con SHA-2 (clave simétrica):

Algoritmo Función hash Longitud firma Uso recomendado
HS256 SHA-256 256 bits (32 bytes) Estándar general, buena seguridad/rendimiento
HS384 SHA-384 384 bits (48 bytes) Mayor seguridad, compatible con más sistemas
HS512 SHA-512 512 bits (64 bytes) Máxima seguridad HMAC

Nota: Los algoritmos RS256/RS384/RS512 (RSA) y ES256/ES384/ES512 (ECDSA) usan claves asimétricas (pública/privada) y no están implementados en esta versión por requerir gestión de certificados.


Claims comunes en el payload

Claim Nombre Descripción Ejemplo
iss Issuer Quién emite el token "mi-app.com"
sub Subject Identificador del usuario "user_12345"
aud Audience Destinatario previsto "api.mi-app.com"
exp Expiration Timestamp de expiración (segundos Unix) 1735689600
nbf Not Before No válido antes de este timestamp 1704067200
iat Issued At Timestamp de emisión 1704067200
jti JWT ID Identificador único del token "a1b2c3d4-e5f6"
custom Datos propios (roles, permisos, etc.) "roles": ["admin", "editor"]

Seguridad: tu clave nunca sale del navegador

Esta herramienta usa la Web Crypto API nativa del navegador (crypto.subtle):

  • Firma local: La clave secreta y el payload nunca salen de tu dispositivo
  • Sin red: No hay peticiones HTTP, todo ocurre en cliente
  • Estándar: Implementación conforme a RFC 7519 y Web Crypto API
  • Auditable: El código es visible en el inspector del navegador

Advertencia: En producción, nunca expongas tu clave secreta en frontend. Los JWT se deben firmar en backend. Esta herramienta es solo para desarrollo, pruebas y aprendizaje.


Decodificar sin validar firma

El botón “Decodificar” hace:

  1. Separa el JWT en sus 3 partes por .
  2. Decodifica Base64URL del header y payload
  3. Muestra el JSON formateado
  4. NO valida la firma — útil para inspeccionar tokens de terceros o depurar

Prueba el generador ahora

Genera JWTs firmados para tus APIs, autenticación o pruebas. Totalmente local, gratis y sin registro.

Genera tu JWT online y decodifica tokens al instante.

Publicidad / Advertisement

Preguntas frecuentes

¿Qué algoritmos soporta?
Actualmente HS256, HS384 y HS512 (HMAC con SHA-2, SHA-384 y SHA-512). Los algoritmos RS* y ES* requieren claves asimétricas y no están implementados en esta versión.
¿Mi clave secreta sale de mi navegador?
No. Todo el proceso de firma y decodificación ocurre localmente en tu dispositivo usando la Web Crypto API. Nada se envía a servidores.
¿Puedo decodificar un JWT sin la clave?
Sí. El botón 'Decodificar' lee el header y payload (que son Base64URL) sin validar la firma. Útil para depurar tokens.
Which algorithms are supported?
Currently HS256, HS384 and HS512 (HMAC with SHA-2, SHA-384 and SHA-512). RS* and ES* algorithms require asymmetric keys and are not implemented in this version.
Does my secret key leave my browser?
No. All signing and decoding happens locally on your device using the Web Crypto API. Nothing is sent to any server.
Can I decode a JWT without the key?
Yes. The 'Decode' button reads the header and payload (which are Base64URL) without validating the signature. Useful for debugging tokens.