【发布时间】:2012-11-06 23:17:33
【问题描述】:
我正在尝试编写一个随机密码生成器。我处于早期阶段,遇到了一些问题。通过下面的代码和屏幕截图,您可以看到我得到了一个非常可预测的字符串(2 的字符串)。每次我收到一个只填充一种数字的字符串。我应该如何编辑我的代码以生成更好的密码字符串? (不只是包括数字)
private void button1_Click(object sender, EventArgs e)
{
int characters = Convert.ToInt32(comboBox1.SelectedIndex);
string password = "";
for(int i = 0; i <= characters; i++)
{
password = password +charGen();
}
label2.Text = password;
}
private char charGen()
{
Random random = new Random();
char randomNumber = Convert.ToChar( random.Next(48, 57));
return randomNumber;
}
}
【问题讨论】:
-
建议不要手动创建此类函数。而是使用 c# 的内置函数,如 GUID
-
@SidharthMudgal GUID 不是随机的
-
附带说明,我应该将 random.Next 范围限制在什么范围内,以便仅提供普遍接受的密码字符?
-
@Blorgbeard 你的意思是,“某些类型的 GUID 不是随机的”。
标签: c# winforms random passwords ascii