我需要创建一个 2048 位素数。
我用过这段代码。
SecureRandom rnd = new SecureRandom();
int certainty = 100000000;
BigInteger p = new BigInteger(2048, certainty, rnd);
这个号码是素数和安全的?
如果方法错误,我该怎么办?
如果你让我知道,我非常感谢你!
这个数字可能是素数。有一些方法可以检查它是否确实是素数,但这并没有。另一方面,我建议使用BigInteger.probablePrime(int bitLength, Random rnd)
Javadoc来摆脱确定性值。
至于它是否安全,这完全取决于你对安全的定义,但是 SecureRandom 类符合各种加密标准,所以你应该在这方面做得很好。