代码之家  ›  专栏  ›  技术社区  ›  JasonS

在哪里可以找到用于密码验证的词典?

  •  6
  • JasonS  · 技术社区  · 17 年前

    我正在研究一种密码验证算法,它需要根据字典检查潜在的密码。如果密码或密码的任何部分可以在字典中找到,请拒绝它。这个函数很简单,但是我从哪里得到单词表呢?是否已经有了一个用于查找单词的web服务?我找过一些,但没有发现任何尖叫“选我!”谢谢。

    编辑:当我问这个问题时,我并没有想到像@joe skora这样的特定密码字典会包含一些可以避免的单词。所以,我将扩展这个问题,包括那种类型的字典,以及编写这个函数时可能没有考虑到的任何东西。

    平台是C/ASP.NET/SQL Server。这只是需要实现的强密码算法的一个组件。再次感谢。

    9 回复  |  直到 8 年前
        1
  •  6
  •   KovBal    17 年前

    Googling 免费词典为你提供了很多免费的词典。如果你把它们上传到数据库,你可以快速查找一个已知的单词。

    然而 别以为它能消除非暴力攻击 !

    你应该看看 密码破解应用程序 !字典攻击最简单的扩展是组合词。此外,还有其他类型的攻击,如替换字符,它们在键盘上彼此接近。(例如:将D转到F。)

    到目前为止,我看到的最好的密码破解应用程序是 John the Ripper . 如果你看到,它使用什么样的攻击,你可以建立一个更好的密码生成器。

    你也应该学习 用户习惯 ,因为 典型的密码是错误的密码 . 例如,大多数用户将数字放在密码短语的末尾,所以一个强密码是,它的中间有一个数字。

        2
  •  2
  •   JasonS    17 年前

    我从 here ,并将其加载到我的数据库中。删除所有少于3个字符的单词。

    编写了一个c函数来将密码的每个子字符串(目前只转发)解析为一个xml字符串。

    将XML字符串传递给存储过程,该过程创建一个1列临时表,每个子字符串组成一行。

    将临时表加入我的单词列表,如果返回任何行,我知道密码包含字典单词,并且我知道匹配的子字符串。

    这很有效,但我认为我们最终会修改单词表一点,因为它可能限制性太强。

    感谢单词表上的帮助

    我最初尝试使用拼写检查器,但是我没有找到一种方法,在没有第三方组件(重新分发太贵,我们正在销售一个产品)或服务器上需要MS Word的情况下进行拼写检查。

        3
  •  2
  •   Luke Girvin Nathan Bedford    8 年前

    通常

    • /usr/dict/单词

    • /usr/share/dict/单词

    这取决于您使用的unix。

    还有更多的在线服务,例如 free multilingual dictionary

        4
  •  1
  •   Redbeard    17 年前

    有几个开放的通用许可证(不特定于密码)单词列表/数据库。我最喜欢的是 Princeton WordNet

        5
  •  1
  •   Oli    17 年前

    我认为没有必要检查措辞,特别是如果你想拒绝你的密码的一部分。英语有很多小单词,扩展到多语种可能会阻止使用任何大小合理的密码,而不会让其他字母都是“z”、“q”或“y”: 在“je”中“a”在“je”中“um”在“o” 等。

    我不完全明白为什么你会在意字典里的密码,而你却可以轻易地强加其他简单的规则:

    最小长度为8个字符的密码必须包含:

    • 2到8个大写字符
    • 2到8个小写字符
    • 2到8个数字
    • 1到4个特殊字符(***+“ %&;(?)?-[]{}\<> 等)
        6
  •  1
  •   Luke Girvin Nathan Bedford    8 年前

    要验证强密码,您应该做的不仅仅是检查字典中的单词。但是如果你的平台上还没有一个库来完成这个任务(顺便问一下是什么?)-简单地对待它就像你想做拼写检查一样。如果密码的任何部分通过了拼写检查器,它就会失败。

    微软有一个 library for spell-checking .

    如果您特别想使用 web service, consider this .

        7
  •  0
  •   Quintin Robinson    17 年前

    我觉得以前的节目很糟糕。它有一些蛮力字典可以作为基础(我认为它们是作为纯文本文件包含的),除了我不知道有任何地方有公共的pw字典。

        8
  •  0
  •   Joe Skora    17 年前

    有几本字典/单词表 here .

        9
  •  0
  •   Terry G Lorber    17 年前

    检查预期密码中的所有子字符串 http://www.dictionary.com