Cómo funciona
Una contraseña fuerte es una que un atacante no puede adivinar de forma viable. La medida formal estándar es la entropía, en bits, que cuenta cuántas contraseñas posibles podrían haberse generado con las mismas reglas. Entropía = longitud × log2(tamaño_pool_caracteres). Una contraseña de 12 caracteres en minúsculas (26 opciones por posición) tiene 12 × log2(26) ≈ 56 bits de entropía. Añade mayúsculas, dígitos y símbolos (~94 opciones), y una de 12 caracteres salta a 12 × log2(94) ≈ 79 bits. La diferencia es enorme: 56 bits = ~72 cuatrillones de posibilidades; 79 bits = ~600 sextillones. A 1 billón de intentos/seg (GPU consumer alta gama sobre un hash rápido), 56 bits caen en ~20 horas; 79 bits tardan ~19 000 años. Conclusión: longitud y variedad ambas componen exponencialmente.
Como la entropía escala linealmente con la longitud y solo logarítmicamente con el pool, la longitud es la palanca más eficiente. Añadir un carácter a una contraseña de 12 totalmente imprimibles añade ~6,5 bits (~100× más difícil); pasar de solo minúsculas a mezclar mayúsculas + dígitos añade ~24 bits (~16M×), pero solo una vez. En sitios que lo permiten, 16+ caracteres del pool completo (~94) alcanzan ~105 bits y se consideran «irrompibles» frente a cualquier atacante realista, incluso adversarios estatales con granjas masivas. NIST SP 800-63B recomienda 8+ caracteres para cuentas generales y 12+ para alta seguridad; los usuarios conscientes deberían apuntar más alto.
Notas prácticas. (1) Lo realmente aleatorio importa. Una contraseña «con pinta de aleatoria» que inventas tú no es aleatoria — los humanos agrupamos en ciertas letras, palabras y sustituciones («S@m» en vez de «Sam») que los crackers han catalogado mucho. La API crypto.getRandomValues del navegador (que usa esta herramienta) produce salida criptográficamente aleatoria, genuinamente uniforme en el pool. (2) No reutilices contraseñas. El mayor riesgo real es el credential stuffing: una contraseña de 50 bits de un sitio filtrado probada contra tu banco. Usa gestor de contraseñas con maestra larga (25+ frase o 16+ aleatoria) y deja que genere únicas por sitio. (3) La memorabilidad importa menos de lo que se cree. Con gestor solo recuerdas la maestra; el resto pueden ser 30+ caracteres de ruido puro. Para la maestra, la lista Diceware de la EFF da ~13 bits por palabra — una frase de 5 palabras tipo «correct horse battery staple bishop» da ~65 bits, fácil de memorizar y muy fuerte.
La fórmula
longitud es la longitud en caracteres. tamaño_pool es el número de caracteres posibles por posición, según las clases que actives. El "/2" en la estimación refleja que en media el atacante encuentra la contraseña a la mitad del espacio de búsqueda.
Ejemplo de cálculo
- Genera una contraseña de 16 caracteres con minúsculas + mayúsculas + dígitos + símbolos (pool de 94).
- Entropía = 16 × log2(94) = 16 × 6,554 ≈ 105 bits.
- A 1 billón (10^12) intentos/seg sobre un hash rápido, tiempo esperado = 2^105 / 2 / 10^12 ≈ 6,4×10^20 seg, o ~2×10^13 años — órdenes de magnitud más que la edad del universo.
- Para comparar: 8 caracteres en minúsculas tienen 8 × log2(26) ≈ 38 bits, crackeables en 2^38 / 2 / 10^12 ≈ 0,14 seg. La misma longitud con clases completas: 8 × log2(94) ≈ 52 bits → ~2 250 seg (~37 min). La longitud importa más que la variedad de clases.
Preguntas frecuentes
¿Es seguro este generador? ¿Dónde van las contraseñas?
Se genera todo en tu navegador con window.crypto.getRandomValues — un origen aleatorio criptográficamente seguro integrado en navegadores modernos. Nada se envía por red, se registra, ni se transmite a ningún servidor. Puedes verificarlo abriendo herramientas de desarrollo (pestaña Red) mientras generas: cero solicitudes. La página es estática, así que aunque nuestros servidores estuvieran comprometidos, el generador seguiría ejecutándose localmente. Para máxima paranoia, genera en un dispositivo offline o revisa el código antes. La API crypto del navegador es la misma primitiva que potencia TLS, gestores de contraseñas y operaciones de firma — tan segura como cualquier operación criptográfica común que ya confías a diario.
¿Qué longitud debe tener mi contraseña?
Para la mayoría de cuentas: 16 caracteres del set completo (~105 bits) es cómodamente seguro contra cualquier atacante realista hoy y a futuro previsible. Para cuentas de bajo valor: 12 caracteres bastan (~79 bits). Para la maestra del gestor: 20+ caracteres o frase Diceware de 5-7 palabras. Para sistemas con restricciones de clase («debe contener 1 mayúscula, 1 dígito, 1 símbolo»), la calculadora lo contempla — genera más largo para compensar entropía efectiva reducida. Evita contraseñas arbitrariamente largas (50+) salvo que las necesites: causan fricción de UX (autorrellenado, copia) sin ganancia de seguridad significativa más allá de ~100 bits.
¿Y las frases de contraseña (passphrases) en vez de caracteres aleatorios?
Excelentes para memorabilidad con buena entropía si se generan correctamente. La lista Diceware larga de la EFF (~7 800 palabras inglesas comunes) da ~12,9 bits por palabra elegida uniformemente al azar. Cinco palabras = ~65 bits (cuentas de seguridad media), siete = ~90 bits (muy fuerte, comparable a 14 caracteres aleatorios), nueve = ~115 bits (paranoica). Crítico: las palabras deben elegirse verdaderamente al azar, no por ti. Las «frases memorables» autoseleccionadas agrupan en palabras, canciones, citas y patrones gramaticales comunes que los crackers explotan (el famoso «correct horse battery staple» de XKCD funciona solo porque se sortearon con dados, no se eligieron). Herramientas como la página de Diceware de la EFF o gestores con generador de passphrases lo hacen bien. Desventajas: tardan más en teclearse, más errores, y muchos sitios limitan longitud por debajo de lo que requieren 7+ palabras. Úsalas para la maestra y cuentas que las permitan; aleatorio en el resto.