0
我的应用程序是在asp.net 4.0中,我想用20个字符生成只允许2个特殊字符的密码。为了生成这个密码,我使用了下面的代码。但是这会产生超过2个特殊字符的密码。Asp.net成员资格GeneratePassword方法没有创建只有2个特殊字符的密码
string randomPassword = Membership.GeneratePassword(20,2);
我的应用程序是在asp.net 4.0中,我想用20个字符生成只允许2个特殊字符的密码。为了生成这个密码,我使用了下面的代码。但是这会产生超过2个特殊字符的密码。Asp.net成员资格GeneratePassword方法没有创建只有2个特殊字符的密码
string randomPassword = Membership.GeneratePassword(20,2);
numberOfNonAlphanumericCharacters 类型:System.Int32
的非字母数字字符(例如,@,#,%,&,等等!)中的最小数目生成的密码。
我想你应该创建你自己的方法,如果你想有正好两个非字母数字字符。
public string CreatePassword(int numberChar, int numberSpecialChar){
string password = "";
string specialChars = "&@~#'[|\\^/!?;"; //choose you own
int counterNonAlphanumeric = 0;
for (int i=0; i <numberChar-numberSpecialChar; i++){
password += generateRandomChar();
if (specialChars.Contains(password.Substring(password.Length-1, 1))){
counterNonAlphanumeric +=1;
}
}
if (counterNonAlphanumeric != numberSpecialChar){
password += generateRandomSpecialChar();
password += generateRandomSpecialChar();
}
}
我只是做了些什么来表达这个想法。
希望它能帮助:P
编辑:
我发现这个(已经创建功能): Generating Random Passwords 有些功能你正在寻找