Java中使用随机数的正确姿势是什么? java随机数Random的使用( 二 )


SecureRandom是强随机数生成器 , 它可以产生高强度的随机数 , 产生高强度的随机数依赖两个重要的因素:种子和算法 。算法是可以有很多的 , 通常如何选择种子是非常关键的因素 。Random的种子是System.currentTimeMillis() , 所以它的随机数都是可预测的 ,  是弱伪随机数 。强伪随机数的生成思路:收集计算机的各种信息 , 键盘输入时间 , 内存使用状态 , 硬盘空闲空间 , IO延时 , 进程数量 , 线程数量等信息 , CPU时钟 , 来得到一个近似随机的种子 , 主要是达到不可预测性 。说的更通俗就是 , 使用加密算法生成很长的一个随机种子 , 让你无法猜测出种子 , 也就无法推导出随机序列数 。
总结今天我们探讨了业务中经常使用的随机数的一些机制和一些场景下的一些陷阱 , 希望你在使用随机数的时候能避免这种陷阱 。

Java中使用随机数的正确姿势是什么? java随机数Random的使用


推荐阅读