【发布时间】:2012-06-21 19:05:33
【问题描述】:
我正在做一个加密消息的秘密共享算法。为此,我需要一个大于消息的素数和一些与消息大小大致相同的随机数。
我可以用 BigInteger.probablePrime(MsgSize+8) 做第一个,但我不知道后面怎么做。
我使用的是 Random 和后来的 SecureRandom,但它们不会生成给定长度的数字。我的解决方案是对 BigInteger 执行 randomInt ^ randomInt 但显然是一个糟糕的解决方案。
一些想法?
【问题讨论】:
-
我不太确定你想要实现什么,但构造函数
BigInteger bi = new BigInteger(MsgSize, new SecureRandom());不会解决问题吗? -
我没有想到构造函数。但似乎唯一合适的是 new BigInteger(bitLength, certainty, new SecureRandom),我看到的唯一问题是我不需要检查它是否是素数的开销。
-
@millimoose Your's 是我使用的答案,但我检查了 Sinan Cepel 的答案,因为我只是使用了一个表扬。非常好的一个,不过;)
标签: java random cryptography biginteger