密码安全要求 - 排除常用的单词和键盘模式

时间:2013-12-06 13:28:53

标签: regex security passwords

我想询问是否有任何建议的方法如何强制执行以下密码策略要求

  • 排除密码中常用的字词
  • 排除键盘模式(如QWERTY789)

目前我只使用正则表达式来指定密码的复杂性。实现此目的的最佳/推荐方法是什么?

2 个答案:

答案 0 :(得分:1)

对于要排除的密码列表,Bloom filter是一个不错的选择。布隆过滤器用于测试元素是否是集合的成员。在你的情况下, 该集是您要排除的密码列表,该元素是给定的输入。 Bloom过滤器的优点是速度快;测试操作的复杂性是O(1)。缺点是假阳性匹配是可能的(但没有假阴性)。但是,可以配置误报的可能性。

如果给定的输入通过Bloom过滤器,则通过regex测试其他模式。 如果输入无法通过,只需拒绝它。

答案 1 :(得分:0)

如果有一个你要排除的单词列表,那么正则表达式可能不是正确的。您想要设置无效字的列表,并检查输入以查看它是否包含其中一个被排除的字。正则表达式适用于“密码不得包含重复的数字,例如11,22,33”,“密码不应包含3个或更多字符的重复文本,例如abcabc”等等