Una opción es usar una lista de contraseñas débiles bien conocidas. Esas listas están disponibles a partir de muchas violaciones del pasado en Internet. Por ejemplo, la lista de RockYou contiene las contraseñas de más de 32 millones de cuentas. Un método sería comparar su contraseña con las 1000 contraseñas más comunes (digamos). Si existe una contraseña similar a su contraseña, se considerará que su contraseña es débil. La similitud se puede calcular con la distancia de edición (por ejemplo, la distancia de Levinshtein), que es el número mínimo de inserciones / eliminaciones / sustituciones para transformar una cadena (es decir, en este caso la contraseña) en la otra.
Otra solución es utilizar un enfoque que se describe en el documento "Medidores adaptativos de resistencia de contraseña de modelos de Markov" ( enlace ). Aquí solo se almacenan y se cuentan n-grams de todas las contraseñas para crear Modelos Markov a partir de las contraseñas. Estos modelos de Markov se utilizan para calcular la fortaleza de las contraseñas. La ventaja de este enfoque es que el modelo de Markov se adapta a la distribución de contraseñas del sitio específico. Por ejemplo, los usuarios de RockYou a menudo tienden a usar contraseñas que contienen la cadena "rockyou" de alguna forma. Por lo tanto, para RockYou estas contraseñas similares a esta deben considerarse como débiles. Para otros sitios web hay otras contraseñas débiles específicas del sitio.