日期:2014-05-18  浏览次数:21182 次

c# 中如何 自动生成一个前两位是大写字母后6位是数字的密码?
大家好哈:
    我是新手,请大家帮下
  一个张号   一个密码
张号是12位数字
密码是自动生成,总共8位,前两位是大写字母,后六位是数字。每次生成密码不可以一样。
代码怎么写呢,请高手门指点下
谢谢

------解决方案--------------------
private string GetPassword()
{
string allchars = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ ";
StringBuilder res = new StringBuilder(8);
Random rand = new Random();

for (int i = 0; i < 2; i++)
{
res.Append(allchars[rand.Next(11, allchars.Length)]);
}

for (int i = 0; i < 6; i++)
{
res.Append(allchars[rand.Next(10)]);
}

return res.ToString();
}
------解决方案--------------------
//生成随机字符串
private string CreateRandomCode(int codeCount)
{
string allChar = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z ";
string[] allCharArray = allChar.Split( ', ');
string randomCode = " ";
int temp = -1;

Random rand = new Random();
for (int i = 0; i < codeCount; i++)
{
if (temp != -1)
{
rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(35);
if (temp == t)
{
return CreateRandomCode(codeCount);
}
temp = t;
randomCode += allCharArray[t];
}
return randomCode;
}

调用
string s=CreateRandomCode(2);
MessageBox.Show(s);
生成数字类同

------解决方案--------------------
修改一下。
private string GetPassword()
{
string allchars = "0123456789ABCDEFGHIJKLMNOPQRSTUVXYZ ";
StringBuilder res = new StringBuilder(8);
Random rand = new Random();

for (int i = 0; i < 2; i++)
{
res.Append(allchars[rand.Next(10, allchars.Length)]);
}

for (int i = 0; i < 6; i++)
{
res.Append(allchars[rand.Next(10)]);
}

return res.ToString();
}
------解决方案--------------------
就是随机数的问题!

给分点管理就可以了!