Generador JWT
Genere JSON Web Tokens firmados con encabezado, carga y clave personalizados. Soporta HS256, RS256, ES256.
¿Qué es un JWT?
JWT (JSON Web Token) es un estándar abierto (RFC 7519) para transmitir información de forma segura como un objeto JSON compacto. Consta de tres partes separadas por puntos: Header.Payload.Signature.
¿Cuáles son los usos comunes de JWT?
JWT se usa ampliamente para autenticación (inicio de sesión único), autorización de API e intercambio seguro de información. Tras el login, el servidor emite un JWT que el cliente incluye en solicitudes posteriores.
¿Cómo elijo entre HS256, RS256 y ES256?
HS256 usa un secreto compartido y es el más rápido, ideal para servicios únicos. RS256 usa pares de claves RSA, mejor para arquitecturas multi-servicio. ES256 usa curvas elípticas, ofreciendo alta seguridad con firmas más cortas.
¿Qué son los claims de JWT?
Los claims son declaraciones en el payload. Los registrados incluyen iss (emisor), sub (sujeto), exp (expiración), aud (audiencia). Los claims públicos pueden registrarse en IANA. Los privados son campos personalizados.
¿Cómo verifico un JWT?
Decodifique el header para obtener el algoritmo, luego use la clave adecuada (secreto compartido para HMAC, clave pública para RSA/ECDSA) para verificar la firma. También verifique exp, iss y aud.
¿Es seguro generar JWTs en el navegador?
Sí, esta herramienta usa la Web Crypto API. Sus claves y tokens nunca salen del navegador. No se envían datos a ningún servidor.
¿Cuál es la diferencia entre codificar y firmar?
Codificar (Base64) solo convierte datos a un formato transmisible y es reversible por cualquiera. Firmar crea un hash criptográfico que prueba que el token no ha sido alterado.
¿Se puede cifrar un JWT?
Sí, JWE (JSON Web Encryption) cifra el contenido del payload. El JWT estándar (JWS) solo garantiza integridad, pero el payload es legible por cualquiera que tenga el token.
¿Cuáles son las mejores prácticas de seguridad para JWT?
Siempre establezca tiempos de expiración cortos. Use secretos fuertes y aleatorios para HMAC. Guarde las claves privadas de forma segura. Nunca ponga datos sensibles en el payload. Use HTTPS en producción.
¿Cómo se compara JWT con la autenticación por sesiones?
JWT es sin estado — el servidor no almacena datos de sesión, ideal para microservicios y dominios cruzados. Las sesiones requieren almacenamiento en servidor pero permiten revocación instantánea.
¿Es JWT adecuado para cerrar sesión?
JWT es sin estado por diseño, así que cerrar sesión requiere mecanismos adicionales como listas de bloqueo o tokens de corta duración con refresh tokens. Use tokens de acceso de vida corta (ej. 15 minutos).
¿Cómo funciona el patrón de refresh token con JWT?
Use un token de acceso de corta duración (JWT) para llamadas API y un refresh token de mayor duración para obtener nuevos tokens de acceso. Cuando el token expira, el cliente envía el refresh token para obtener un nuevo JWT.
¿Qué es el algoritmo "none"?
El algoritmo "none" significa que el JWT no está firmado. Solo debe usarse para pruebas. Muchas bibliotecas lo desactivan por defecto por seguridad.
¿Hay limitaciones de tamaño en JWT?
JWT no tiene un límite fijo, pero como se envía en cabeceras HTTP, debe mantenerse bajo 4KB. Mantenga el payload mínimo, solo incluya claims necesarios.