【问题标题】:password complexity in C [closed]C中的密码复杂性[关闭]
【发布时间】:2011-08-22 03:22:17
【问题描述】:

您好,我正在实习,我的公司告诉我,我必须使用 C 语言来实现密码复杂性。密码必须是字母数字(例如 h#ll0)。由于我是 C 新手,我发现了一些困难。我用谷歌搜索“C 中的密码复杂性”,但没有运气。谁能给我一些示例或解释我如何以编程方式进行操作。

提前非常感谢

凯文

【问题讨论】:

  • 如何实现..“密码复杂度”...?
  • 您需要先决定如何实现它。然后问具体C语言实现的问题。先用伪代码写吧。
  • 最强密码包含null或nil。
  • 很遗憾,SO 并没有消除不负责任地使用它的人关闭问题的能力。如果这些人不明白这个问题,他们可以要求澄清。

标签: c password-checker


【解决方案1】:

更好的 Google 术语是“强密码”:

http://en.wikipedia.org/wiki/Password_strength

但是您会发现大多数文章都不是针对 C 语言的,它们可能会建议使用正则表达式。

按照其他人的建议,编写自己的低级代码来进行检查可能不会太难。这样可以省去生成对某些要使用的 C 语言正则表达式库的依赖关系的麻烦。但是,使用正则表达式有一个优势,因为这意味着非 C 程序员在以后有更好的机会更新规则,并且它可能使错误不太可能启动。这取决于您的具体情况。

(另外,如果你的 C 代码的其他部分需要正则表达式,那么链接一个可能是你无论如何都需要做的事情,你会“免费”获得它......)

无论如何,这个 StackOverflow 问题有一个 regex.h 教程的链接,将来可能会添加更多:

C - pellucid regex.h use tutorial

【讨论】:

    【解决方案2】:

    您没有提供足够的信息。我认为密码复杂度是指密码强度。

    我不从事为某人编写代码的业务,但如果您要做的是确定密码是否同时包含字母和数字,至少是 n 字符长等,C 具有您可以使用的功能。 isalnum()isdigit()isalpha() 用于测试。这些都返回非零值以表示为真。

    就速度而言,C 本身就很快,但请记住,无需解析整个密码——您所需要的只是让函数在某个时刻返回一个非零值。 (所有这些函数都按字符解析;C 字符串是 char 数组。)

    http://icecube.wisc.edu/~dglo/c_class/charfunc.html这是一个很好的字符解析函数的小参考。

    【讨论】:

      【解决方案3】:

      这取决于密码的编码方式,您可能需要 ASCII 字符表或 Unicode 字符表。对于输入密码中的每个字符,将其分类为数字、大写字母、小写字母或特殊字符等组。

      这里是表格的链接:

      http://www.asciitable.com/

      http://www.tamasoft.co.jp/en/general-info/unicode.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        相关资源
        最近更新 更多