如何验证具有上,下和特殊字符的密码?

时间:2013-11-20 17:18:46

标签: c# asp.net

我需要验证用户需要设置最小值,1个上限,1个下限和1个特殊字符...我只是验证用户需要最少6个字母或更多...

try
{
    string actualPass = this.txtactualPass.Text;
    string newPass = this.txtnewPass.Text;
    string reEnterPass = this.txtReEnterPass.Text;

    if (actualPass == this.Session["password"].ToString())
    {
        if (newPass.Length >= 6)
        {

2 个答案:

答案 0 :(得分:5)

您可以检查密码是否包含数字,而不是特殊字符。可以使用char.IsSymbol

来表示特殊字符
if 
(
    newPass.Length >= 6 &&        //if length is >= 6
    newPass.Any(char.IsUpper) &&  //if any character is upper case
    newPass.Any(char.IsSymbol)    //better to have a digit then Symbol
)  
{
    //valid
}

答案 1 :(得分:0)

我知道这是一个非常老的话题,但是对于那些寻找类似情况的人来说。我会去找正则表达式。

var result = "Password@123";

var expectedPasswordPattern = new Regex(@"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$");

var isValidPassword = expectedPasswordPattern.IsMatch(result);    

Console.WriteLine(isValidPassword); 

引自here