当前位置:  开发笔记 > 后端 > 正文

一个明智的PasswordStrengthRegularExpression

如何解决《一个明智的PasswordStrengthRegularExpression》经验,为你挑选了2个好方法。

我们正在使用标准的ASP.NET身份验证提供程序(AspNetSqlMembershipProvider),并且defualt密码强度要求对我们的需求有点过分.

我们要求用户输入至少为字母数字的密码(即,如果用户需要,则为字母和至少一个强制性,混合大小写和非字母数字字符).

任何人都可以建议PasswordStrengthRegularExpression设置会实现这个目标吗?

另外,如果他们尝试使用的密码未通过正则表达式检查,我们如何控制向用户显示的错误消息?

注意

发现该minRequiredNonalphanumericCharacters属性必须设置为0,否则此设置将覆盖使用的任何正则表达式



1> 小智..:

我们刚刚实现了以下表达式来验证一个8到16个字符的pwd并包含以下4个项目中的三个:大写字母,小写字母,符号,数字

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

各个组成部分的解释:

(?= ^ [^\s] {8,16} $) - 包含8到16个非空白字符

(?=.*?\ d) - 包含1个数字

(?=.*?[AZ]) - 包含1个大写字符

(?=.*?[az]) - 包含1个小写字符

(?=.*?[^\w\d\s]) - 包含1个符号

在长度段之后注意双重parens,然后在表达式中你会看到几个|.这允许或者比较允许的4种可能组合.

写完这篇文章之后我才注意到这个问题是在一年前提出的.由于我在搜索中遇到过这个问题,我希望其他人也能从我们的解决方案中受益.


谢谢.我知道这是一个老问题,但这对我有帮助!

2> Andrew Hare..:

这是一个允许所有字符的正则表达式,并且至少需要一个数字,并且至少需要6个字符.

^.*(?=.{6,})(?=.*\d).*$

如果您想要更多或更少的字符定义,只需更改(?=.{6,})以反映您想要的字符数.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有