C#产生随机密码

zhengchengbaishi 2011-06-02 05:06:10
public static string MakePassword(string pwdchars, int pwdlen)
{
string tmpstr = "";
int iRandNum;
Random rnd = new Random();
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);

tmpstr += pwdchars[iRandNum];
}
return tmpstr;

}
protected void Button1_Click(object sender, EventArgs e)
{
string randomchars = "0123456789";
string password = MakePassword(randomchars, 4);
}

}
这些代码每次按一下Button只能产生一个随机密码,如何改可以一次产生多个。
...全文
243 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengchengbaishi 2011-06-02
  • 打赏
  • 举报
回复
for (int j = 0; j < 4; j++)
{
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}

}
我给改成这样了,可是现实出的密码是4774129541000223 这样的,我想让它每隔四个中间就有空格该如何弄啊!比如这样:4774 1295 4100 0223
zhengchengbaishi 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 matrixcl 的回复:]
C# code

private Random rnd = null;
public static string MakePassword(string pwdchars, int pwdlen)
{
string tmpstr = "";
int iRandNum;
……
[/Quote]


你这样我之间就用过,产生的所有代码都是一样的。
matrixcl 2011-06-02
  • 打赏
  • 举报
回复
抱歉,liuwenjun830。说错了,6楼是对的,这样能保证得到不同的随机数
hinada99 2011-06-02
  • 打赏
  • 举报
回复
路过帮忙顶起~
matrixcl 2011-06-02
  • 打赏
  • 举报
回复


private Random rnd = null;
public static string MakePassword(string pwdchars, int pwdlen)
{
string tmpstr = "";
int iRandNum;
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}
return tmpstr;
}
protected void Button1_Click(object sender, EventArgs e)
{
rnd = new Random();
string randomchars = "0123456789";

string[] passwords = new string[1000];
for (int i=0; i<1000; i++)
{
passwords[i] = MakePassword(randomchars, 4);
}
}



PS:6楼不对,试试就知道了。
zhengchengbaishi 2011-06-02
  • 打赏
  • 举报
回复
for (int j = 0; j < 4; j++)
{
for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);
tmpstr += pwdchars[iRandNum];
}

}
我给改成这样了,可是现实出的密码是4774129541000223 这样的,我想让它每隔四个中间就有空格该如何弄啊!比如这样:4774 1295 4100 0223
Tar-Palantir 2011-06-02
  • 打赏
  • 举报
回复
Random rnd = new Random();

public static string MakePassword(string pwdchars, int pwdlen)
{
string tmpstr = "";
int iRandNum;

for (int i = 0; i < pwdlen; i++)
{
iRandNum = rnd.Next(pwdchars.Length);

tmpstr += pwdchars[iRandNum];
}
return tmpstr;

}
protected void Button1_Click(object sender, EventArgs e)
{
string randomchars = "0123456789";
string password = MakePassword(randomchars, 4);
string password1 = MakePassword(randomchars, 4);
string password2 = MakePassword(randomchars, 4);
}

}

这样就调用多次了嘛,呵呵
liuwenjun830 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhengchengbaishi 的回复:]

引用 2 楼 matrixcl 的回复:
多次调用。但是需要注意一点,

这行 Random rnd = new Random(); 应该只执行一次,
多次调用rnd.Next来获取随机数。

否则的话有可能取到相同随机数。因为Random的无参构造函数使用时间做为种子。


求解,如何多次调用
[/Quote]
Random rnd = new Random(DateTime.Now.Millisecond);
作为成员变量。
Purple_Sky2010 2011-06-02
  • 打赏
  • 举报
回复
如果你是想一次性生成几个密码的话,就自己设置一个for循环来多次调用你的方法就行。比如初始值1 调用三次就到3跳出就行。这样子就能生成三个。
zhengchengbaishi 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 matrixcl 的回复:]
多次调用。但是需要注意一点,

这行 Random rnd = new Random(); 应该只执行一次,
多次调用rnd.Next来获取随机数。

否则的话有可能取到相同随机数。因为Random的无参构造函数使用时间做为种子。
[/Quote]

求解,如何多次调用
zhengchengbaishi 2011-06-02
  • 打赏
  • 举报
回复
想让它一次性批量产生。
matrixcl 2011-06-02
  • 打赏
  • 举报
回复
多次调用。但是需要注意一点,

这行 Random rnd = new Random(); 应该只执行一次,
多次调用rnd.Next来获取随机数。

否则的话有可能取到相同随机数。因为Random的无参构造函数使用时间做为种子。
风骑士之怒 2011-06-02
  • 打赏
  • 举报
回复
多次调用你的 产生随机码 的方法不就行了。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧