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

mj1*_*829 3 java random generator long-integer secure-random

Java是否SecureRandom.nextLong()返回所有可能的值,因为它继承了Random仅使用48位的值?如果没有,我是否仍然可以通过修改Random类以及如何进行Java来实现它?我只想使用所有随机长数字生成器,如果可能的话,可以返回所有可能的长值.

Pet*_*rey 7

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

该类提供加密强随机数生成器(RNG).

此类委托给许多可能的实现之一.你可以通过电话选择一个SecureRandom.getInstance(algorithm)

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

这使用了s 48位algorighm

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

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

public void nextBytes(byte[] bytes) {
    secureRandomSpi.engineNextBytes(bytes);
}
Run Code Online (Sandbox Code Playgroud)

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

相关链接如何解决慢Java`SecureRandom`?由于使用/ dev/random

  • 好的,downvote删除了.我应该更加厌倦与你不同意;) (2认同)