请教密码强度正则表达式

varstrongRegex=newRegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$","g... var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
请问这2个var中表达的是什么样的规则?
展开
 我来答
爱染年
2016-07-18 · 知道合伙人互联网行家
爱染年
知道合伙人互联网行家
采纳数:4751 获赞数:7830
国家励志奖学金获得者

向TA提问 私信TA
展开全部

  密码强度指一个密码被非认证的用户或计算机破译的难度。 密码强度通常用“弱”或“强”来形 容。“弱”和“强”是相对的,不同的密码系统对于密码强度有不同的要求。密码的破译与系统允许客户尝试不同密码的次数、是否熟悉密码主人等因素相关。然而,即使再强的密码也有可能被偷取、破译或泄漏,在用户设置密码时,尽可能的将密码设置的越复杂、位数越长、经常更换此类型的密码,从而才能让密码强度尽可能达到最高。

  条件1: 密码只能是数字或大小写字母或下划线的组合

  条件2: 如果密码包含数字和字母的组合即为强.

  例如 : 123abc 为强密码

            123abc_也是强密码

            123456 为弱密码

            123456_为弱密码

            abcdef 为弱密码

            abcdef_ 为弱密码

  首先,画一个DFA:

  其中,S是开始状态,A代表包含数字但不包含字母的状态,B代表包含字母但不包含数字的状态,C代表既包含字母又包含数字的状态,O代表包含非法字符的陷阱状态。如果状态机停在S、A、B状态,则为弱密码。如果状态机停在C状态,则为强密码。如果状态机停在O状态,则为非法密码。然后,把它转化成正则就可以啦。


  下面这个正则要求密码长度最少12位,包含至少1个特殊字符,2个数字,2个大写字母和一些小写字母。

  (?=^.{12,25}$)(?=(?:.*?\d){2})(?=.*[a-z])(?=(?:.*?[A-Z]){2})(?=(?:.*?[!@#$%*()_+^&}{:;?.]){1})(?!.*\s)[0-9a-zA-Z!@#$%*()_+^&]*$

  分解:

  <span style="font-size: 16px;">(?=^.{12,25}$) -- 密码长度12-25,自己改变数字可以调节

  (?=(?:.*?[!@#$%*()_+^&}{:;?.]){1}) -- 至少一个特殊字母,FYI</span>

  (?=(?:.*?\d){2}) -- 至少2个数字,FYI

  (?=.*[a-z]) -- a-z的小写字母

  (?=(?:.*?[A-Z]){2}) -- 至少2个大写字母,FYI

albumin
推荐于2018-03-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2352万
展开全部
var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*\\W).*$", "g");
表示至少8个字符,而且必须同时有大写字母,小写字母,数字,除了字母数字下划线以外的字符。四种字符必须都有,缺一不可。
比如“aAbb2?eee"就符合要求,而“aAbb2_eee"就不符合要求

var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
表示至少7个字符,必须同时含有大写字母和小写字母;或者同时有大写字母和小写字母;或者同时有小写字母和数字。以上三种情况满足一种即符合要求
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丁巴什罗大神cy
2019-04-05 · TA获得超过1784个赞
知道小有建树答主
回答量:1525
采纳率:86%
帮助的人:632万
展开全部

两种:

第一,要求密码至少包含 大写字母,小字字母,数字,特殊符号中的两种:

reg=/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,}$/;

第二:要求密码必须包含字母,数字和特殊符号:

reg=/^(?=.*[a-zA-Z])(?=.*[1-9])(?=.*[\W]).{6,}$/;

这里有详细的解释和在线演示:jquery里用正则来验证密码,必须包含大小写字母,数字及特殊符号,或最少包含两种

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式