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

How to generate all possible 64 bit random values in java?

是否 Java SecureRandom.nextLong() return 所有可能的值都继承自仅使用 48 位的 Random?如果没有,我是否仍然可以在 Java 中执行此操作,也许可以通过修改随机 class 以及如何执行?我只想使用一个全随机长数生成器,如果可能的话,所有可能的长值都可以 returned。

虽然 SecureRandom 继承自 Random,但它不使用相同的数学或具有相同的限制。它最终会产生所有可能的 64 位值。

This class provides a cryptographically strong random number generator (RNG).

此 class 委托给许多可能的实现之一。你可以 select 调用 SecureRandom.getInstance(algorithm)

注意:一些实现在您的计算机中使用熵来使结果随机,而不是纯粹的伪随机。

this uses s 48 bit algorighm

SecureRandom 不使用其父级的任何方法,例如

/**
 * The provider implementation.
 */
private SecureRandomSpi secureRandomSpi = null;

public void nextBytes(byte[] bytes) {
    secureRandomSpi.engineNextBytes(bytes);
}

此方法委托给完全不同的实现。

相关 link How to solve slow Java `SecureRandom`? 由于使用 /dev/random