1
  • 没有键盘模式。即键盘上垂直或水平相邻的键。例如,“ZXCVBN123”应该被拒绝。
  • 没有常用词,也没有倒写或伪装特殊字符的词。例如 'Universe1' 和 'Un1ver$e' 应该被拒绝。
4

2 回答 2

1

好吧,首先你需要准确地定义你想要什么。什么是键盘模式?'jk' 是键盘模式,还是只是 'jkl'?最短的模式是什么?“gy”是一种模式吗?首先,您需要定义真正的模式。

然后你应该列出所有可用的模式(没有那么多。你有 36 个起点和从每个起点出发的 4 个方向)。当您获得密码时,请尝试找到其中的每个模式。请注意,如果您确定最短的模式是 3 个字母长,则不需要搜索 4 个字母的模式,所有 4 个字母的模式都已经包含 3 个字母的模式。

至于文字,这更容易,但首先您需要列出所有不允许的转换($->S、1->i 等...)。一旦你得到一个词,应用所有的转换并给自己一个“规范化”的词。将标准化密码与所有合法单词的字典进行两次比较 - 第二次反转密码。

您可能需要做一些比这更复杂的事情,因为您需要忽略单词末尾的数字 -有时. 1ncredible 可以替代“incredible”,尽管 ncredible 不是一个词。

于 2013-01-16T10:56:22.127 回答
1

如果您检查http://howsecureismypassword.net的代码,您可以看到该密码与大量常用密码进行了比较。

在页面 threre 是对页面http://xato.net/passwords/more-top-worst-passwords/的引用,该页面列出了前 10.000 个最常见的密码。

一种方法是下载该列表并检查用户密码或至少前 100 个密码。

于 2013-01-16T12:17:13.017 回答