我正在尝试使用 BigInteger
实现简单的RSA加密/解密。对于较小的数字,它可以正常工作,但对于较大的数字无法正常工作:
BigInteger messageToInt = 111098;
BigInteger enc = BigInteger.ModPow(messageToInt, publicKey, n);
BigInteger dec = BigInteger.ModPow(enc, privateKey, n); // should be same as messageToInt
Console.WriteLine(dec);
这里的密钥来自维基百科示例 - privateKey = 413
,publicKey = 17
,n = 3233
。
- 对于
messageToInt=1500
:dec=1500
(这是正确的)。 - 对于
messageToInt=15000
:dec=2068
。(怎么会这样?)