Esta herramienta genera tokens de un solo uso de alta entropía para escenarios específicos de seguridad web. A diferencia de un generador genérico de cadenas aleatorias, cada escenario aplica automáticamente las convenciones correctas.
Escenarios:
- Token CSRF: un token opaco vinculado a la sesión del usuario y enviado con peticiones que cambian estado (formularios, AJAX) para demostrar que la petición vino de tu propia página.
- State OAuth/OIDC: un valor no adivinable enviado al servidor de autorización y validado en el callback de redirección, vinculando la respuesta a esta petición y previniendo CSRF de login.
- Nonce de Sesión: un valor aleatorio de un solo uso vinculado a una sesión para evitar la repetición de peticiones.
- PKCE Verifier + Challenge: genera un
code_verifier (guardado en el cliente) y deriva el code_challenge = base64url(SHA256(verifier)) (enviado al servidor de auth) según RFC 7636, de modo que un código de autorización filtrado no pueda canjearse sin el verifier. PKCE fuerza codificación base64url y una longitud de verifier de 32-96 bytes (43-128 caracteres base64url).
- Personalizado: un token opaco genérico de alta entropía para cualquier escenario de un solo uso que definas; la longitud en bytes la controla el usuario (8-128).
Opciones:
- Longitud en bytes: bytes de entropía. Fijada en 32 (256 bits) para todos los escenarios predefinidos; editable (8-128) solo en Personalizado.
- Codificación: base64url (segura para URL, por defecto para tokens web), hex o base64. Forzada a base64url para PKCE.
- Añadir prefijo de marca de tiempo de expiración: antepone
base36(segExpiración).token para que el servidor pueda rechazar tokens expirados sin estado (patrón recomendado por OWASP).
- TTL (segundos): ventana de validez usada por el prefijo de timestamp.
- Cantidad: genera 1-50 tokens a la vez.
Seguridad: la aleatoriedad viene de crypto.randomBytes() de Node — nunca Math.random(). El challenge PKCE usa SHA-256 vía crypto.createHash(). Esta herramienta solo genera material de token; no almacena ni valida tokens en el servidor.