Una contraseña generada vale lo que la aleatoriedad que hay detrás y la longitud que le des. Esta herramienta bebe de crypto.getRandomValues —la fuente aleatoria criptográficamente segura del navegador— y el valor por defecto de 16 caracteres de un alfabeto de 62 símbolos te da unos 95 bits de entropía. Qué significa ese número, y cuáles de las casillas importan de verdad, merece dos minutos.
La entropía es la longitud por el logaritmo del alfabeto
La fuerza de una contraseña aleatoria es log2(tamaño_alfabeto) × longitud, y merece tener la aritmética a mano porque zanja discusiones. Cada carácter de un conjunto de 62 símbolos (A–Z, a–z, 0–9) aporta 5,95 bits. Dieciséis de ellos son 95,3 bits.
Para poner 95 bits en perspectiva: un atacante con una copia offline del hash, lanzando un billón de intentos por segundo en hardware serio, necesitaría del orden de 600 millones de años para cubrir la mitad del espacio. No es un número que empeore significativamente con mejor hardware. Una contraseña de esta longitud y este alfabeto no es lo que se va a romper.
La longitud gana a los símbolos, y no por poco
He aquí el cálculo que debería cambiar cómo usas esta herramienta. Activar la casilla de símbolos hace crecer el alfabeto de 62 a 88 y lleva una contraseña de 16 caracteres de 95,3 a 103,4 bits: una ganancia de 8,1 bits. Arrastrar en cambio el deslizador de longitud de 16 a 20 te lleva a 119,1 bits: una ganancia de 23,8.
Cuatro caracteres extra valen tres veces todos los signos de puntuación del teclado. Es porque la longitud es un multiplicador del exponente mientras que el alfabeto es solo la base. Los símbolos además te cuestan: rompen el copiar y pegar en algunos terminales, los destrozan sistemas que filtran la entrada, y siguen siendo la razón por la que un número deprimente de sitios aún rechaza contraseñas perfectamente buenas. Si tienes que elegir, elige longitud.
La fuente aleatoria es la parte que puede estar catastróficamente mal
Un generador de contraseñas tiene un trabajo que no puede salir mal, y es invisible desde fuera. crypto.getRandomValues es un generador criptográficamente seguro: su salida no es predecible ni siquiera para quien haya visto muchísima. Math.random no lo es. V8 implementa Math.random con xorshift128+, un algoritmo pensado para velocidad y calidad estadística: observa suficiente salida y su estado interno puede reconstruirse, con lo que todo valor que producirá después se vuelve predecible.
Un generador de contraseñas construido sobre Math.random produce una salida que a ti te parece perfectamente aleatoria, supera cualquier inspección visual y es una catástrofe. No es un modo de fallo hipotético; ha ocurrido repetidamente en software publicado. Esta herramienta usa getRandomValues, que es la única respuesta aceptable, y merece saber que la pregunta existe para poder hacérsela a cualquier otro generador que uses.
Qué dicen realmente las recomendaciones ahora
El NIST SP 800-63B se reescribió hace años y la mayoría de las reglas de contraseñas que la gente sigue imponiendo se eliminaron de él. Las reglas de composición —debe contener una mayúscula, un número, un símbolo— están explícitamente desaconsejadas, porque empujan a los humanos hacia sustituciones predecibles. Password1! cumple todas las reglas y está en todos los diccionarios de cracking.
La rotación periódica forzada también desapareció salvo indicio de compromiso. Empeoraba las contraseñas en vez de mejorarlas: a quien se le pide cambiar cada trimestre produce Verano2024, Otoño2024, Invierno2024. Lo que las recomendaciones piden en su lugar es una longitud mínima, un máximo generoso, permiso para usar cualquier carácter incluidos espacios y emojis, y una comprobación contra listas de contraseñas filtradas. Esto último es el control de mayor valor con diferencia, porque el ataque realista no es fuerza bruta contra 95 bits: es probar una contraseña que ya se filtró en otro sitio.
Las frases de contraseña, y dónde encajan
Cuatro palabras sacadas al azar de una lista Diceware de 7.776 palabras son 51,7 bits. Cinco son 64,6, seis son 77,5. Está muy por debajo de los 95 bits de una cadena aleatoria de 16 caracteres, lo que sorprende a quien ha visto la famosa viñeta de xkcd.
La gracia de una frase de contraseña nunca fue que sea más fuerte: es que un humano puede memorizarla y por tanto no la escribirá en un pósit ni la reutilizará. Ese equilibrio importa para el puñado de contraseñas que de verdad tienes que recordar: el acceso a tu dispositivo, la contraseña maestra de tu gestor. Para las otras varios cientos, la memorabilidad es irrelevante, porque de recordar se encarga el gestor. Usa una frase donde haya un cerebro implicado, y una cadena aleatoria larga en todo lo demás.
Preguntas frecuentes
¿Se generan las contraseñas en un servidor?
No. Esta herramienta está marcada como "client": cada contraseña se produce en la pestaña de tu navegador con su propia fuente aleatoria y no se transmite nada. No hay registro de ellas en ninguna parte, aquí incluido. Dicho esto, el hábito más seguro con cualquier generador web es tratar una contraseña generada en un navegador como algo menos privada que una generada localmente por tu gestor: no por esta página en concreto, sino porque una pestaña del navegador es un sitio concurrido, con extensiones dentro.
¿Cuánto debería medir mi contraseña?
Dieciséis caracteres aleatorios están más allá del punto en que la longitud es tu problema, y por eso es el valor por defecto aquí. Por debajo de unos 12 estás en territorio donde un ataque offline decidido es plausible. Por encima de unos 20 estás optimizando algo que ya no tenía posibilidades realistas de ser forzado, y ganarías más seguridad activando la autenticación en dos pasos.
¿Debo excluir los caracteres ambiguos?
Solo cuando un humano tenga que leer la contraseña a través de un hueco: de una pantalla a un móvil, por teléfono, de una tarjeta impresa. Quitar l, 1, I, 0 y O encoge el alfabeto, así que te cuesta algo de entropía: con 16 caracteres la pérdida es inferior a 2 bits, que no es nada. Cuando nadie la lee, déjalos.
¿Por qué la misma contraseña muestra fuerza distinta en sitios distintos?
Porque la mayoría de los medidores estiman cómo habría construido la contraseña un humano, no cuánta entropía tiene realmente. Buscan palabras de diccionario, rachas de teclado, fechas, sustituciones l33t. Contra una cadena verdaderamente aleatoria esas heurísticas no tienen dónde agarrarse, así que la puntuación es en realidad solo función de la longitud y la variedad de caracteres, y por eso un medidor calificará alegremente Password1! como "fuerte" mientras está en todas las listas de cracking.
¿Es seguro reutilizar una contraseña muy fuerte en todas partes?
No, y esto es lo más importante de esta página. La entropía protege de adivinar; no hace absolutamente nada contra una filtración. Cuando un sitio guarda mal tu contraseña y sufre una brecha —lo que pasa constantemente— la fuerza de la contraseña es irrelevante, porque el atacante ya la tiene. Luego la probará en tu correo, y si funciona, todo lo demás cae detrás. Las contraseñas únicas no van de fuerza. Van de contención.