net Random 随机数重复的问题

在实际项目中不仅需要随机产生密码字符串,还要一次生成多个。我把生成随机字符串的方法放到for循环中,问题出现了。

生成的字符串,会重复。

经过多方查证,原因在代码。

//使用与系统时间相关的种子
Random rnd = new Random();

问题正是出现在这,系统时间会在10ms更新一次,而for循环大大短于10ms,所以会产生重复。

如何解决呢,当然是不使用默认种子,手动指定,而且种子不能重复。我想for循环中的计数器正适合。

for (int i = 0; i < count; i++)
{
     //以i作为种子,产生随机数
     Random rnd = new Random(i);
}

完美解决。

原文地址:https://www.cnblogs.com/archip/p/3910570.html