条件: 密码必须至少包含8个字符,这些字符结合使用以下至少2个字符:大写和小写字母,数字和特殊字符。
哪种模式适合条件?
答案 0 :(得分:6)
正则表达式是完全错误的方法。而只是简单地计算每种字符类型的出现次数,然后简单地使用if语句和布尔逻辑来检查是否满足您的要求。
然而,重新考虑一下你想做什么是个好主意:
所以更好的密码策略会:
在IT安全堆栈交换网站上还有一篇有趣的帖子,你应该阅读:Short complex password, or long dictionary passphrase?
答案 1 :(得分:0)
string PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20})";
string password = "Password@1#";
Regex.IsMatch(password,PASSWORD_PATTERN);
试试这个。