我必须创建一个密码强度检查器,但我无法获得的唯一要求是“不是字典中的单词或专有名称”。我有一个60兆字节的文本文件。例如,当你使用“测试”时,它会失败,但如果你使用test123,它会在失败时通过。密码要求 - 不是字典的单词或专有名称
我该代码是:
int counter = 0;
string line;
while ((line = file.ReadLine()) != null)
{
if (line.Contains(pwd)) { return false; }
counter++;
}
我将如何分析用户的密码拉了字典中的单词?
或者我应该尝试实施一个正则表达式,迫使每3个字符是一个数字或特殊字符,避免字典文件一起?谢谢。
你还没有定义你想要失败的东西。 'test123'不是词典单词。你不能简单地说“任何包含字典单词的东西”,因为1)没有意义,2)有很常见的短字符串是字典单词,比如'a'。你不想拒绝每个包含'a'的密码 – CodesInChaos 2011-06-08 13:53:14
“Qj16!!!”(注意“中间的”)有效还是无效?我问,因为“test123”不是一个字典词,它只包含一个。真正的要求是什么?密码是否可以包含“a”或“I”? – 2011-06-08 13:54:16
关于你的“或”建议,强制“每个* n *字符是* x *类型”的想法不会让你走上安全之路。首先,你已经公布了关于如何破解它的第一个细节。 – 2011-06-08 13:54:26