我已经编写了一些代码来生成一系列随机字符,但它没有:
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之间。我不知道如何做这项工作。如何进行正确的转换以将其传递到文本框进行显示?
答案 0 :(得分:4)
如果您想在此处生成随机密码,请great example。这里的another one更天真。简单地忘记Path.GetRandomFileName
功能。
答案 1 :(得分:0)
您将使用文件名替换随机数据:
sstring = Convert.ToBase64String(sbytes);
sstring = Path.GetRandomFileName();
第二个语句忽略第一个语句设置的现有值,因此对NextRandom()
和ToBase64String
的调用完全无关。
你究竟想做什么?
编辑:这不是创建随机密码的好方法。首先,您应该使用SecureRandom
而不是Random
,并且您 也可能希望避免混淆诸如“0”和“O”以及“l”之类的功能“1”看起来一样。你可以单独使用Path.GetRandomFileName
,但它并不是它的设计目的。
答案 2 :(得分:0)
如果你写了
sstring += Path.GetRandomFileName();
我猜测结果会更像你正在寻找的但是它只是伪随机你应该看一下Darin发布的链接