我要生成一个随机的密码,用于windows ad域中的帐号密码,密码要求如下:
不能包含用户的帐户名,不能包含用户姓名中超过两个连续字符的部分
至少有6个字符长
最大有22个字符长
包含以下四类字符中的三类字符:
英文大写字母(A 到 Z)
英文小写字母(a 到 z)
10 个基本数字(0 到 9)
非字母字符(例如 !、$、#、%)
在更改或创建密码时执行复杂性要求。请大家帮我写个类。
不能包含用户的帐户名,不能包含用户姓名中超过两个连续字符的部分
至少有6个字符长
最大有22个字符长
包含以下四类字符中的三类字符:
英文大写字母(A 到 Z)
英文小写字母(a 到 z)
10 个基本数字(0 到 9)
非字母字符(例如 !、$、#、%)
在更改或创建密码时执行复杂性要求。请大家帮我写个类。
public string getreadrem(string userchar )
{
Random rd = new Random();
string newchar=null;
int i=0;
int x=0;
char[] rdchar = new char[] { '@', '`', '!', 'A', 'a', '"', '4', 'T', 't',
'B', 'b', '#', 'C', 'c', '$', '5', 'U', 'u',
'D', 'd', '%', 'E', 'e', '&', 'F', 'f',
'\'', 'G', 'g','(', 'H', 'h',')', 'I', 'i',
'*', 'J', 'j', '+', 'K', 'k', ',', 'L', 'l',
'-', 'M', 'm','.', 'N', 'n', '/', 'O', 'o',
'0', 'P', 'p', '1', 'Q', 'q', '2', 'R', 'r',
'3', 'S', 's', '6', 'V', 'v', '7', 'W', 'w', '8', 'X', 'x',
'9', 'Y', 'y', ':', 'Z', 'z', ';', '[', '{', '<',
'\\','|', '=', ']', '}', '-', '>', '^', '~', '?', '_' };
i=rd.Next(7,23);//得到密码长度
for(int j=0;j<i;j++)
{
x= rd.Next(0, rdchar.Length);//得到字符下标. newchar += rdchar[x];//得到新的字符
int z= userchar.IndexOf(newchar);
if(z>0) //判断字符里有没有随机生成字符.
{
x=rd.Next(newchar.Length,rdchar.Length);
newchar += rdchar[x];
}
}
return newchar.ToString() ;
}