如何创建一串随机字符(如密码...)?
我已经写了一些代码来生成随机字符序列,但它并不:如何创建一串随机字符(如密码...)?
byte[] sbytes = { 1, 0, 1, 0, 1 };
String sstring;
System.Random r = new System.Random();
r.NextBytes(sbytes);
sstring = Convert.ToBase64String(sbytes);
sstring = Path.GetRandomFileName();
sstring = sstring.Replace("=", "");
sstring = sstring.Replace(".", "");
textBox1.Text = sstring.ToString();
我相信这个问题是和的nextBytes之间ToBase64String。我不知道如何做这项工作。你如何做正确的转换,将其传递给文本框进行显示?
如果你想产生一个随机密码,这里是一个great example。这是another one这是更天真。只需忘记Path.GetRandomFileName
函数。
持久性+1! – 2010-08-19 20:55:26
非常感谢你们。非常感谢您的帮助。 – Nightforce2 2010-08-19 22:41:19
你的文件名替换随机数据:
sstring = Convert.ToBase64String(sbytes);
sstring = Path.GetRandomFileName();
第二条语句忽略现有的值由第一语句设置,所以NextRandom()
和ToBase64String
的通话是完全不相干的。
你究竟想要做什么?
编辑:这不是一个非常好的创建随机密码的方法。对于一件事,你应该使用SecureRandom
而不是Random
,你可能会想,以避免混淆如“0”和“O”,“l”和“1”看起来相同的功能。你可能只是自己使用Path.GetRandomFileName
,但它不是真的是它的设计。
只需使用ToBase64String和GetRandomFilename制作随机密码即可。 – Nightforce2 2010-08-19 20:24:59
你是什么意思,混淆O和0有没有字母使用在示例字符串中的第一位... – Nightforce2 2010-08-21 09:16:21
@ Nightforce2:什么“样本字符串”你在说什么?如果你从随机数据中使用base64,你绝对可以得到一个字符串,比如OOO0O0OO,这在许多字体中很难区分。 – 2010-08-21 10:57:02
如果你写
sstring += Path.GetRandomFileName();
我猜结果会更喜欢你在找什么。然而,这只是伪随机的,你应该看看达林公布
哪些链接你想做什么? **不要**使用'Path.GetRandomFileName'来产生随机串! – 2010-08-19 20:23:11