Cómo crear una contraseña segura (y por qué la mayoría no lo son)
Cada filtración masiva de datos que sale en las noticias vuelve a dejar la misma lección: la mayoría de las contraseñas comprometidas no eran sofisticadas de romper, eran cortas, reutilizadas o directamente predecibles. Crear una contraseña segura no requiere memoria de elefante ni un método complicado; requiere entender qué es lo que realmente la hace difícil de adivinar, que no siempre coincide con lo que durante años nos enseñaron a hacer.
Longitud antes que complejidad: lo que cambió en las recomendaciones de seguridad
Durante mucho tiempo, la norma fue exigir contraseñas con mayúscula, minúscula, número y símbolo obligatorios, cambiadas cada 90 días. Las guías de seguridad más influyentes, como el NIST SP 800-63B en Estados Unidos, se corrieron de esa postura: hoy priorizan la longitud por sobre reglas de composición forzadas, y recomiendan en cambio bloquear contraseñas que ya aparecieron en brechas de datos conocidas.
¿Por qué el cambio? Porque obligar a cumplir reglas de composición específicas no vuelve a una contraseña impredecible, la vuelve previsible de otra manera: la gente tiende a resolver el requisito con el mínimo esfuerzo posible, así que "contraseña" termina convertida en "Contraseña1!", un patrón que cualquier lista de contraseñas comunes ya contempla. Una contraseña larga generada al azar, en cambio, no tiene ese patrón para explotar.
Por qué una contraseña larga y simple puede ser más fuerte que una corta y "complicada"
La resistencia de una contraseña frente a un ataque de fuerza bruta depende de cuántas combinaciones posibles tiene que probar un atacante hasta acertar, y eso crece de forma exponencial con la longitud, no de forma lineal. Agregar un carácter más no suma un poco de seguridad: la multiplica.
Es la razón por la que una contraseña corta con símbolos puede ser, en la práctica, más débil que una más larga sin ellos: el largo pesa más que la variedad de caracteres usada. Esto no significa que los símbolos no ayuden (si podés sumarlos, mejor), sino que si tenés que elegir entre acortar una contraseña para hacerla "más compleja" o alargarla manteniéndola simple, alargarla gana casi siempre.
El error que más cuentas compromete: reutilizar la misma contraseña
Ni la contraseña más larga del mundo te protege si la usás en diez sitios distintos. El motivo es un ataque llamado credential stuffing: cuando una web sufre una filtración de datos, las listas de usuario y contraseña filtradas se prueban automáticamente contra miles de otros sitios (bancos, redes sociales, correo). Si reutilizaste esa misma combinación en otro lado, esa cuenta también cae, aunque ese segundo sitio nunca haya sido hackeado.
Por eso la recomendación no es solo "una contraseña fuerte", es "una contraseña distinta y fuerte por cada cuenta". En la práctica, eso es imposible de sostener de memoria a partir de cierta cantidad de cuentas, así que apoyarse en algo que genere y guarde esas contraseñas por vos (un gestor de contraseñas, o al menos un generador confiable al que recurrir cada vez) deja de ser un lujo y pasa a ser la única forma realista de no reutilizar nada.
Cómo se genera una contraseña realmente al azar (y por qué Math.random() no alcanza)
No toda función que "genera algo al azar" en una computadora sirve para seguridad. Math.random(), la función más común para generar números aleatorios en JavaScript, es un generador pseudoaleatorio pensado para casos como animaciones o sorteos casuales: su secuencia es determinística y, en teoría, predecible si alguien conoce el algoritmo y el estado interno del generador. Para un secreto como una contraseña, eso es un riesgo inaceptable.
El generador de contraseñas de Herramientastic usa en cambio crypto.getRandomValues(), la Web Crypto API del navegador: un generador de números aleatorios criptográficamente seguro (CSPRNG), diseñado específicamente para que su salida no sea predecible ni siquiera conociendo el algoritmo. Es la misma clase de fuente de aleatoriedad que se usa para generar claves criptográficas, no un truco de conveniencia. Y todo el proceso ocurre en tu propio navegador: la contraseña generada nunca se envía a ningún servidor ni se almacena en ningún sitio, algo especialmente relevante tratándose de un dato tan sensible.
Qué significa el indicador de fortaleza, con números reales
Cuando generás una contraseña y ves una etiqueta de "débil", "media", "fuerte" o "muy fuerte", ese cálculo no es una estimación arbitraria: se basa en la entropía de la contraseña, medida en bits. La fórmula es simple:
entropía = longitud × log2(tamaño del conjunto de caracteres)
El "conjunto de caracteres" es la cantidad de símbolos distintos que la contraseña podría usar según qué tipos activaste. En el generador de Herramientastic, cada tipo de carácter aporta esto:
- Minúsculas (
a-z): 26 caracteres. - Mayúsculas (
A-Z): 26 caracteres. - Números (
0-9): 10 caracteres. - Símbolos (
!@#$%^&*()_+-=[]{}|;:,.<>?): 26 caracteres.
Si activás los cuatro tipos, el conjunto total es de 88 caracteres posibles por posición. Algunos ejemplos concretos de cómo eso se traduce en fortaleza:
- 8 caracteres, solo minúsculas (26 símbolos posibles): entropía ≈ 8 × log2(26) ≈ 37,6 bits → débil.
- 12 caracteres, con los cuatro tipos activados (88 símbolos posibles): entropía ≈ 12 × log2(88) ≈ 77,5 bits → fuerte.
- 16 caracteres con minúsculas, mayúsculas y números (62 símbolos posibles, la configuración por defecto de la herramienta): entropía ≈ 16 × log2(62) ≈ 95,3 bits → muy fuerte.
El patrón se repite en los tres casos: la longitud pesa más que la variedad de caracteres disponibles. Pasar de 8 a 16 caracteres con el mismo conjunto reducido ya cambia la fortaleza de débil a muy fuerte; agregar símbolos a una contraseña corta ayuda, pero mucho menos que alargarla.
Generar una contraseña fuerte, en la práctica
No hace falta memorizar la fórmula de entropía para aplicar esto: alcanza con activar varios tipos de caracteres, subir la longitud (el generador permite entre 6 y 64 caracteres, con 16 como valor por defecto) y dejar que la aleatoriedad la resuelva un algoritmo pensado para eso en vez de intentar "inventar" algo memorable vos mismo, que casi siempre termina siendo más predecible de lo que parece.
Podés probarlo directamente en el generador de contraseñas: elegís longitud y tipos de caracteres, generás una contraseña al instante y ves su nivel de fortaleza en tiempo real, todo sin que el resultado salga de tu navegador. Y si necesitás otras utilidades de texto para el día a día (codificar datos, generar un QR, depurar un token), podés recorrer el resto de la categoría de texto de Herramientastic.