我想在asp.net中生成alfa数字otp c#

时间:2016-08-29 13:19:43

标签: c# asp.net

public void generate()
{
    string alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string small_alphabets = "abcdefghijklmnopqrstuvwxyz";
    string numbers = "1234567890";
    string characters = numbers;
    characters += alphabets + small_alphabets + numbers;

    int length =6;
    string opt = string.Empty;
    for (int i = 0; i < length; i++)
    {
        string character = string.Empty;
        do
        {
            int index = new Random().Next(0, characters.Length);
            character = characters.ToCharArray()[index].ToString();
        } while (otp.IndexOf(character) != -1);
        otp += character;
    }
    string str= otp;
}

这是我的代码。它的代码对我不起作用。 我想尝试小字母,大写字母和0到9数字组合。

2 个答案:

答案 0 :(得分:3)

此代码将为您提供n位数字的otp。

public static int GenerateOTP(int digits)
    {
        if (digits < 3)
            return new Random().Next(10, 99);
        else
            return new Random().Next(MultiplyNTimes(digits), MultiplyNTimes(digits + 1) - 1);
    }

private static int MultiplyNTimes(int n)
    {
        if (n == 1)
            return 1;
        else
            return 10 * MultiplyNTimes(n - 1);
    }

答案 1 :(得分:1)

以下是代码:

var chars1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
var stringChars1 = new char[6];
var random1 = new Random();

for (int i = 0; i < stringChars1.Length; i++)
{
    stringChars1[i] = chars1[random1.Next(chars1.Length)];
}

var str= new String(stringChars1);