ibcadmin 发表于 2014-7-15 09:13:38

c#验证密码强度及有效性(可防sql注入)

使用正则表达式的方式,验证密码强度,以及有效性,
有效性值的是不能包含可以字符,可防治sql注入

代码如下:

/// <summary>
       /// 验证是否为有效密码
       /// </summary>
       /// <param name="password"></param>
       /// <returns></returns>
      public static bool IsValidPassword(string password)
      {
            try
            {
                return Regex.IsMatch(password,
                              @"[-\da-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]*(" +
                              @"(\d++[-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]+)" +
                              @"|(\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]++)" +
                              @"|(+\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]+)" +
                              @"|(+[-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]+\d+)" +
                              @"|([-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]+\d++)" +
                              @"|([-`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]++\d+))" +
                              @"[-\da-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:<>?]*",
                      RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
            }
            catch (RegexMatchTimeoutException)
            {
                return false;
            }

      }


楼主所有共享的代码好处就是,全部可以直接拿去,直接调用,不需要改任何东西。


sherlockhomles 发表于 2014-7-15 09:16:42

这个和密码格式有没有关联

ibcadmin 发表于 2014-7-15 09:17:39

sherlockhomles 发表于 2014-7-15 01:16
这个和密码格式有没有关联

server 发表于 2014-9-22 14:04:54

你确定有4个参数?:lol

ibcadmin 发表于 2014-9-22 15:18:09

server 发表于 2014-9-22 06:04
你确定有4个参数?

什么4个参数

server 发表于 2014-9-22 15:30:30

ibcadmin 发表于 2014-9-22 15:18
什么4个参数

Regex.IsMatch();
TimeSpan.FromMilliseconds(250)这个参数用不上吧

ibcadmin 发表于 2014-9-22 16:52:13

server 发表于 2014-9-22 07:30
Regex.IsMatch();
TimeSpan.FromMilliseconds(250)这个参数用不上吧

可以去掉 不过不影响
页: [1]
查看完整版本: c#验证密码强度及有效性(可防sql注入)