产生一批随机密码

问题描述:

生成随机密码是容易的。但产生了一批比较困难。

Generating a random password is easy. but generating a batch is more difficult.

    public static string getRandomPassword(int letters, int getallen) {
        //int letters = 8;
        //int getallen = 5;

        char[] letterdeel = new char[letters];
        int minGetal = (int)Math.Pow(10, getallen - 1);
        int maxGetal = (int)Math.Pow(10, getallen);

        string password;
        Random r = new Random();
        int test = (int)(DateTime.Now.Ticks);
        for (int i = 0; i < letters; i++) {
            r = new Random((int)(DateTime.Now.Ticks) + i);
            bool capital = r.Next(2) == 0 ? true : false;
            if (capital) {
                letterdeel[i] = (char)r.Next(65, 91);
            } else {
                letterdeel[i] = (char)r.Next(97, 123);
            }
        }

        password = new string(letterdeel);
        password += r.Next(minGetal, maxGetal);

        return password;
    }

这是我的方法,密码应该是在一定的字母数字格式。
这工作正常,但是如果我有一个循环从该方法获取密码100,在我的阵列我有5-8相同的密码,然后再5 -8相同的密码。

this is my method, the passwords should be in a certain letter-number format. this works fine, however if i have a for loop pulling 100 passwords from this method, in my array i have 5-8 the same passwords, then again 5-8 the same pass.

我知道这是为什么,因为随机函数,它依赖于时钟的,但我怎么解决这个问题?

i know WHY this is, because of the random function and the clock it depends on, but how do i fix this?

定义你的随机数发生器作为函数的静态之外。

Define your random number generator as a static outside of the function.

的http://计算器.COM /问题/ 3660288 /如何-可以-I-得到真随机性,在这个类且不线程sleep300 / 3660321#3660321