RegEx提供非常安全的密码

时间:2019-07-11 21:55:28

标签: javascript regex regex-lookarounds

我正在一个项目上,需要使用以下规则来验证密码生成:

  • 最少1个数字
  • 最少1个大写字母
  • 最少1个符号
  • 没有连续数字
  • 不包括电子邮件或用户名
  • 至少8位数字

到目前为止,我有一个这样的正则表达式:

/^(?=.*[0-9])(?=.*[a-z])(?!=.*\d{4})(?=.*[A-Z])(?=.*[!@#$%^&*(),.?":{}|<>])(?=\S+$).{8,16}$/

这只会检查:  -最少1个号码  -至少1个大写字母  -最少1个符号  -至少8位数字

我不确定如何检查:

  • 没有连续数字(4)

接受:

1953
1749
7402

不接受:

1234
0987
4567
1111
9999

1 个答案:

答案 0 :(得分:0)

这里有一些提示:

  • 如何检查连续数字:Regex to check for 4 consecutive numbers
  • 还有更多特殊字符[!@#$%^&*(),.?":{}|<>]
  • 我会将其他电子邮件/用户名作为单独的检查,而不是此正则表达式的一部分。我将在.-\s-_上拆分电子邮件/用户名,并检查密码是否包含任何拆分部分。

还请记住,拥有非常特殊的密码规则会限制可能的密码数量。我建议添加密码强度计,而不要加以限制,然后让人们决定。

祝你好运!