Generador de Cadenas Aleatorias — cómo y por qué generar tokens, contraseñas y claves seguras
Un generador de cadenas aleatorias es una herramienta para crear secuencias de caracteres de un conjunto dado (alfabeto, números, caracteres especiales) de la longitud deseada. Tales cadenas se utilizan en desarrollo de software, pruebas, seguridad informática y administración de sistemas. Nuestro generador funciona basándose en el algoritmo criptográficamente seguro crypto.getRandomValues(), integrado en todos los navegadores modernos.
Seguridad criptográfica: por qué es importante
No todos los generadores de números aleatorios son iguales. El Math.random() ordinario en JavaScript es pseudoaleatorio y predecible: no es adecuado para generar contraseñas, tokens o claves de cifrado. El método crypto.getRandomValues() pertenece a la clase CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) y utiliza la fuente de entropía del sistema operativo. Este mismo método se usa en TLS/SSL, Web Crypto API, generación de tokens JWT y otros sistemas críticos. Nuestro generador usa exclusivamente la API crypto, garantizando la máxima resistencia de las cadenas generadas.
Generación de contraseñas: longitud, entropía, resistencia
Una contraseña segura tiene suficiente entropía: una medida de impredecibilidad. La entropía se calcula como la longitud de la cadena multiplicada por el logaritmo del tamaño del alfabeto en base 2. Para una contraseña del conjunto a-z, A-Z, 0-9 (62 caracteres), cada carácter añade ~5.95 bits de entropía. Una contraseña de 12 caracteres tiene ~71 bits, de 16 caracteres — ~95 bits, de 20 caracteres — ~119 bits. Las recomendaciones NIST (SP 800-63B) establecen un mínimo de 8 caracteres para servicios online, pero la práctica moderna es 14-20 caracteres con conjunto mixto.
Tokens de autorización y claves API
Los tokens (access token, refresh token, clave API) son cadenas secretas que confirman los derechos de acceso a un recurso. Para claves API, la longitud estándar es 32-64 caracteres alfanuméricos, que proporcionan 190-380 bits de entropía. Los identificadores de sesión deben tener al menos 128 bits de entropía según las recomendaciones de OWASP. Los tokens CSRF, valores nonce y códigos de confirmación de un solo uso también se generan usando CSPRNG.
UUID v4: identificador único universal
UUID v4 (RFC 4122) es un identificador de 128 bits donde 122 bits son aleatorios y 6 bits están reservados para versión y variante. Formato: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, donde y es uno de los caracteres 8, 9, a, b. UUID v4 proporciona 2^122 (~5.3 × 10^36) valores posibles, haciendo que la probabilidad de colisión sea insignificante incluso al generar miles de millones de identificadores. UUID se usa ampliamente como clave primaria en PostgreSQL, MongoDB, arquitecturas de microservicios y sistemas distribuidos.
HEX y Base64: formatos de codificación
HEX (codificación hexadecimal) representa cada byte con dos caracteres (0-9, a-f). Se usa para hashes (SHA-256 = 64 caracteres HEX), direcciones MAC, colores CSS (#FF5733) y claves de cifrado. Base64 codifica tres bytes con cuatro caracteres del alfabeto A-Z, a-z, 0-9, +, / (y = para relleno). Se aplica para codificar JWT, incrustar imágenes en HTML (data URI), transmitir datos binarios en JSON y XML.
Salt y hashing de contraseñas
Salt es una cadena aleatoria que se añade a la contraseña antes del hashing para proteger contra tablas rainbow y ataques de fuerza bruta. Cada usuario debe tener un salt único. La longitud recomendada del salt es al menos 16 bytes (32 caracteres HEX o 22 caracteres Base64). Los algoritmos modernos de hashing (bcrypt, Argon2, scrypt) generan salt automáticamente, pero para otros escenarios — por ejemplo, HMAC o cifrado — el salt debe generarse por separado.
Datos de prueba para desarrollo
Las cadenas aleatorias son indispensables en las pruebas: rellenar campos de formularios, crear datos simulados, pruebas de carga, verificación de validación y restricciones de longitud. El generador permite crear rápidamente mil cadenas de la longitud necesaria con cualquier conjunto de caracteres — y descargarlas como archivo de texto para importar en una base de datos de prueba o script.
Consejos de seguridad al trabajar con cadenas secretas
Las contraseñas, claves y tokens generados deben almacenarse en un gestor de contraseñas (1Password, Bitwarden, KeePass) o en un almacén seguro de secretos (HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager). Nunca almacenes secretos en texto plano en código, configuraciones o repositorio (git). Para transferir secretos entre miembros del equipo, usa canales cifrados o enlaces de un solo uso (por ejemplo, OneTimeSecret). La rotación de claves y tokens es una práctica obligatoria: cambia las claves API y tokens de servicio al menos cada 90 días.