我需要创建一个 2048 位素数。
我用过这个代码。
SecureRandom rnd = new SecureRandom();
int certainty = 100000000;
BigInteger p = new BigInteger(2048, certainty, rnd);
这个数字是素数且安全吗?
如果方式错误,我该怎么办?
如果您让我知道,我将非常感谢您!!
最佳答案
这个数字可能是质数。有多种方法可以检查它是否确实是素数,但这并不能做到这一点。另一方面,我建议将 BigInteger.probablePrime(int bitLength, Random rnd) 与 Javadoc 一起使用。摆脱确定性值。
至于它是否安全,这完全取决于您对安全的定义,但是 SecureRandom 类符合各种加密标准,因此您应该在这方面表现出色。
关于java - 这个数字是素数且安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050664/