在用户注册与修改、重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一。
而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字、小写或大写字母、特殊字符、字符数在8-30之间,对应的正则表达式如下:
var regex = new Regex(@"
(?=.*[0-9]) #必须包含数字
(?=.*[a-zA-Z]) #必须包含小写或大写字母
(?=([\x21-\x7e]+)[^a-zA-Z0-9]) #必须包含特殊符号
.{8,30} #至少8个字符,最多30个字符
", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
<span style="color: rgb(17, 17, 17); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.5px;">如果要求必须包含小写、大写字母,则上面的</span><pre name="code" class="csharp">(?=.*[a-zA-Z])<span style="color: rgb(17, 17, 17); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 19.5px;">要改为:</span><pre name="code" class="csharp">(?=.*[a-z])
(?=.*[A-Z])