java - 当可以使用 SecureRandom 类时,为什么还要使用 Java 的 Random 类?

标签 java random cryptography

据我了解,Java 有两个主要类能够执行伪随机 Activity : Random类和 SecureRandom类(class)。两者都会生成伪随机数。然而,SecureRandom类生成加密安全数字。

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

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

最佳答案

可能的原因有很多

  • Random 较旧,因此有更多示例。
  • 随机对于许多情况来说足够随机,而且速度更快。
  • Random 在所有平台上产生相同的结果,并且对于种子始终产生相同的结果(如果您没有同时指定策略,默认的 SecureRandom 可能会有所不同)

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

相关文章:

algorithm - 如果一个序列是随机的,是否有可能证明?

c - 随机猜谜游戏(整数)- 输入字符串时出现错误

php - PHP的随机播放功能有多随机?

java通过受信任的服务器交换公钥

Java混淆: remove exception messages

java - 添加只有管理员可见的露天空间

java - Q关于Java WindowListener

c# - 带有 Rfc2898DeriveBytes 的 PBKDF2 为相同的输入产生不同的输出?

android - 安全网络传输的最佳实践

java - 隐藏状态栏、导航栏而不调整内容大小