【发布时间】:2017-06-30 03:16:17
【问题描述】:
据我了解,有两个主要的 Java 类能够执行伪随机活动:Random 类和 SecureRandom 类。两者都生成伪随机数。但是,SecureRandom 类会生成加密安全数字。
当您可以使用SecureRandom 类时,为什么还要使用Random 类,它会生成更多不可预测的数字?许多程序员(尤其是视频游戏程序员)只使用Random 类,但是这两个类具有几乎相同的核心方法(都可以生成伪随机整数)。这两个类也可以使用长值作为种子。
我唯一的解释是Random 类比SecureRandom 类运行得更快。这是真的?如果不是,那么为什么许多 Java 程序员更喜欢 Random 类而不是 SecureRandom 类?
【问题讨论】:
-
To start with: "[...] 根据实现,generateSeed 和 nextBytes 方法可能会阻塞,因为正在收集熵 [...] ".此外,
Random提供确定性随机序列,并且在大多数实现中可能更快。
标签: java random cryptography