【发布时间】:2020-05-18 22:27:38
【问题描述】:
我试图根据密码要求创建一个正则表达式。要求是
- 最少八 (8) 个字符
- 至少一个数字 (0-9)
- 以下任意三个:
- 小写
- 大写
- 号码
- 特殊字符 (!" # $ % & ' ( ) * + , - . / : ; ?@ [ \ ] ^ _ ` { | } ~ )
我创建了这个正则表达式
/^[0-9a-zA-Z\s!"#$\%&'\(\)\*\+\,\-\.\/\:;<=>?@\[\\\]\^\_\`\{\|\}\~]+$/g
我对正则表达式了解不多,所以只需要确认它是正确的正则表达式还是需要更改。
【问题讨论】:
-
如果我没看错,你的正则表达式是
^[long list of alternatives]+$。好吧,在这种情况下,它也会匹配hello。 -
复杂的密码规则通常不会带来更安全的密码,重要的只是最小长度。人们无法记住大量的强密码,这样的规则会干扰好的密码方案。人们可以非常有创意地绕过这些规则,例如通过使用“Password-2020”等弱密码。通常,您最终会使用较弱的密码而不是较强的密码。 NIST 发布了 official paper 建议反对此类规则,并反对其以前的建议。
标签: javascript regex passwords salesforce