【问题标题】:Password strength via regular express? [duplicate]通过普通快递的密码强度? [复制]
【发布时间】:2013-05-12 13:04:52
【问题描述】:

我想在 ASP.NET 成员中使用正则表达式。下面的正则表达式是什么?

  • 至少 8 个字符
  • 至少包含一个大写字母
  • 一个小写字母
  • 一个号码

【问题讨论】:

  • 如果你也有兴趣做那个客户端,这可能会让你感兴趣:stackoverflow.com/questions/1388609/… 你实际上可以使用这个线程中写的表达式的不同部分,并在你的服务器上逐渐检查密码强度一边。

标签: asp.net regex


【解决方案1】:

试试这个..

^((?=.*\d)(?=.*[A-Z])(?=.*[a-z]).{8,})  

【讨论】:

    【解决方案2】:

    你可以使用类似的东西:

    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z\d=:;<>,~!@#\\$%/^&)(\[\]+-]{8,}$
    

    测试它here。 您可能还想了解“?=”这件事,它被称为“积极前瞻”here。 简而言之,当所有三个前瞻(.*\d.*[a-z].*[A-Z])都匹配(并被丢弃)时,主正则表达式 [a-zA-Z\d=:;&lt;&gt;,~!@#\\$%/^&amp;)(\[\]+-]{8,} 也可以匹配。

    【讨论】:

    • 为什么要限制有效字符?那不在规范中。另外,你的解释不正确。前瞻不遵循正则表达式匹配。
    • 部分同意,但并非所有字符都有效。我们没有有效的字符列表,所以我设置了最严格的限制。我没有说前瞻遵循正则表达式匹配。我会努力纠正误解)
    • 所以你想强制用户使用不太安全的密码?为什么?
    • 我的决定是基于未知的存储限制,并且这是一个示例。可能只是“.{8,}”,或者他可以添加他想要被允许的特殊字符。
    • 按照 Tim Pietzcker 的建议添加了更多允许的字符。
    【解决方案3】:

    您必须在一个正则表达式中执行此操作吗?我会将这些规则中的每一个都设为一个正则表达式,并单独测试它们。我怀疑你的代码最终会变得更简单,你会为自己和维护你的应用程序的人省去一些麻烦。

    【讨论】:

    • 我明白你在说什么......问题是这是一个软件系统的文本框字段。
    猜你喜欢
    • 2018-01-05
    • 2018-03-09
    • 1970-01-01
    • 2015-07-02
    • 2018-05-23
    • 2019-07-25
    • 2011-02-16
    • 2017-07-24
    • 1970-01-01
    相关资源
    最近更新 更多