secure-random相关内容

生成大量随机数的有效方法

我有一个 java 方法,它必须在很短的时间内生成大量随机数.我的第一种方法是使用 Math.random(它工作得非常快),但我有一个假设,因为我在另一个之后调用 Math.random 如此快,“随机"不是因此非常随机(或不那么随机)(但我需要它尽可能随机). 我现在有两个问题: 我的假设是否正确,因为在很短的时间内随机输出的随机性变小了?如果 1. 的答案是肯定的: 消除随机性 ..
发布时间:2021-07-02 19:56:09 Java开发

重用 java.util.Random 实例 vs 每次都创建一个新实例

标题几乎总结了它 - 我们可以创建一个 java.util.Random(或 SecureRandom)的实例,并在每次需要随机值或我们每次都可以按需创建一个新实例.想知道哪种方式是首选方式,为什么? 给出一些关于上下文的想法:随机值是在 HTTP 请求处理程序中生成的,每个请求一个,我正在寻找考虑多线程的安全性和性能的最佳组合. 解决方案 视情况而定. 创建单个实例显然更简单 ..
发布时间:2021-06-15 19:14:32 Java开发

如何在Java中生成所有可能的64位随机值?

考虑到Java SecureRandom.nextLong()是否从仅使用48位的 Random 继承,它是否返回所有可能的值?如果没有,我是否仍可以通过修改Random类以及如何做到这一点在Java中完成呢?我只想使用一个全随机的长数生成器,如果可能的话,可以返回所有可能的长值. 解决方案 尽管SecureRandom继承自Random,但它使用的数学方式不同或具有相同的限制.最终将产生 ..
发布时间:2021-05-10 18:44:55 Java开发

如何从JVM获取熵?

假设我需要良好的种子来初始化Java程序中的伪随机生成器(PRNG),并且我无法访问任何硬件随机生成器. 如何在没有任何用户交互的情况下从JVM获取熵? 解决方案 SHA-1将被折旧 该漏洞与CSPRNG的构建无关. 如何从JVM获取熵? SecureRandom是各种安全提供程序的通用外观, ..
发布时间:2020-04-25 07:29:35 Java开发

我在哪里可以得到可靠的熵源(真正的随机字节[])?

目前,我正在寻找一种方法来提高 Android 应用程序(纸牌游戏)中随机性的质量。以前,据估计,对于我的情况(52!置换),至少需要226位熵(226个随机位).. 我打算使用这个 byte [] 作为 SecureRandom的种子: SecureRandom random = new SecureRandom(); random.setSeed(/ * insert see ..
发布时间:2019-01-08 18:56:15 Java开发