检查密码复杂度的C#正则表达式

在用户注册与修改、重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一。

而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字、小写或大写字母、特殊字符、字符数在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);

如果要求必须包含小写、大写字母,则上面的 (?=.*[a-zA-Z]) 要改为:

(?=.*[a-z])
(?=.*[A-Z])

                var regex = new Regex(@"
                                     (?=.*[0-9])                     
                                     (?=.*[a-zA-Z])                  
                                     ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);

                bool result = regex.IsMatch(strpassword);

                if (!result)
                {
                    MessageBox.Show("密码必须同时包含数字和字母");
                    return;
                }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值