我通常反对接受密码过于严格或复杂的规则(例如“它必须包含至少一个大写字符、一个数字和一个符号”之类的规则,另请参见XKCD #936: Short complex password,或长字典密码?)。通常我更喜欢计算强度度量(基于包含的特殊字符和长度),如果它高于给定阈值,那么我接受密码,不管它是否强大,因为它是 32 个字符的纯小写文本或因为它是 10 个字符但是它还包含汉字中的数字)。
我喜欢这种方法,因为它对最终用户来说很容易,并且假设受过良好教育的用户会选择密码短语,我倾向于认为他们的密码相当安全。
然而:
用户可能会错误地使用非常常见的句子(我的名字是 adriano或类似的东西)。只要有好的统计数据可用(也许它们现在甚至可用,但我只是不知道),获得散列密码列表的攻击者可能会使用这些统计数据来猜测密码短语。
我不能确定其他网站的安全性,我想防止用户为他们注册的每个网站重复使用相同的密码。
我想要求他们在密码中包含一个给定的随机单词,例如:输入您的密码,确保在其中包含单词“honey”。合理吗?AFAIK 它不应该使用重复的单词/模式来弱散列,因为单词是从足够大的(和特定于语言的)字典中随机选择的。
是的,他们可能只是将所需的单词附加到现有文本(例如“我的名字是阿德里亚诺,亲爱的”),但从破解者的角度来看,这无关紧要,因为单词是随机的,最终额外的分隔符也会提高安全性。