如何创建一串随机字符(如密码......)?

时间:2010-08-19 20:16:18

标签: c# string random base64

我已经编写了一些代码来生成一系列随机字符,但它没有:

        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之间。我不知道如何做这项工作。如何进行正确的转换以将其传递到文本框进行显示?

3 个答案:

答案 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发布的链接