随机代码生成器需要帮助

时间:2010-12-06 18:24:00

标签: c# random

我正在研究随机生成代码的要求(如随机数)。代码应该是字母数字,但应该只允许(A-Z0-9)。用户可以指定代码中的字符数。代码可以是4-9个字符长,具体取决于用户输入。

代码示例为'AG43','XFR4A5UU0'。

编辑: - 我正在寻找解决此问题的最佳方法。我正在考虑生成11到99范围内的2位数随机数。如果数字介于65和15之间。 90(A-z的ascii),我将使用ascii,否则我将生成的数字附加到我的代码字符串。

请指教。

2 个答案:

答案 0 :(得分:9)

var number_of_chars = 4;
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
var random = new Random(); 
var result = new string( 
    Enumerable.Repeat(chars, number_of_chars) 
              .Select(s => s[random.Next(s.Length)]) 
              .ToArray()); 

答案 1 :(得分:2)

public string GetRandomString(int length)
{
    var newBuffer = new byte[length];
    if (length <= 0)
        return null;

    // This was used for a password generator... change this how every needed
    var charSet = ("ABCDEFGHJKLMNPQRSTUVWXYZ" +
                   "abcdefghijkmnprstuvxyz" +
                   "23456789").ToCharArray();

    using (var rng = RandomNumberGenerator.Create())
    {
        rng.GetBytes(newBuffer);

        var newChars = newBuffer.Select(b => charSet[b % charSet.Length]).ToArray();
        return new string(newChars);
    }
}