This question already has answers here:
Difference between java.util.Random and java.security.SecureRandom

(7个答案)


3年前关闭。




据我了解,有两种主要的Java类可以执行伪随机活动:Random类和SecureRandom类。两者都生成伪随机数。但是,SecureRandom类生成密码安全的数字。

当可以使用Random类时,为什么还要使用SecureRandom类,它会生成更多不可预测的数字?许多程序员(尤其是视频游戏程序员)仅使用Random类,但是两个类都具有几乎相同的核心方法(都可以生成伪随机整数)。这两个类都可以使用长值作为种子。

我唯一的解释是Random类的运行速度比SecureRandom类快。这是真的?如果不是,那么为什么许多Java程序员更喜欢Random类而不是SecureRandom类?

最佳答案

有许多可能的原因


随机年龄较大,因此有更多示例。
随机在许多情况下足够随机,而且速度要快得多。
在所有平台上,Random都会产生相同的结果,并且种子的结果总是相同的(如果您也未指定策略,则默认的SecureRandom可能会有所不同)

关于java - 当可以使用SecureRandom类时,为什么要使用Java的随机类? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42181994/

10-10 15:02