net Random 随机数重复的问题
在实际项目中不仅需要随机产生密码字符串,还要一次生成多个。我把生成随机字符串的方法放到for循环中,问题出现了。
生成的字符串,会重复。
经过多方查证,原因在代码。
//使用与系统时间相关的种子 Random rnd = new Random();
问题正是出现在这,系统时间会在10ms更新一次,而for循环大大短于10ms,所以会产生重复。
如何解决呢,当然是不使用默认种子,手动指定,而且种子不能重复。我想for循环中的计数器正适合。
for (int i = 0; i < count; i++) { //以i作为种子,产生随机数 Random rnd = new Random(i); }
完美解决。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。