【发布时间】:2014-11-12 18:50:32
【问题描述】:
我整个上午都在做这个,但仍然无法弄清楚我错过了什么。
我正在尝试使用我自己生成的值执行 RSA 加密。有几个关于这个的帖子,有几个让我走得更远。其中一些相同的帖子让 OP 放弃并使用 BouncyCastle 或其他东西,而有答案和 cmets 说它确实有效。所以我有点决心了解他们所知道的并让 .Net RSACryptoServiceProvider 正常工作。
为此,我在这里有一个简单的小示例,我什至无法导入 RSAParameters。
我还没有发布用于生成和测试素数或我的 e 值的代码。如果需要,我可以,但我认为这不是故障所在,因为那是漂亮的股票代码。
BigInteger p = BigInteger.Parse("17234...948417"); //Large Prime A
BigInteger q = BigInteger.Parse("16750...157759"); //Large Prime B
BigInteger n = BigInteger.Multiply(p, q); //Modulus
BigInteger e = BigInteger.Parse("16168...372355");
RSAParameters _rsaParams new RSAParameters();
_rsaParams.Modulus = n.ToByteArray();
_rsaParams.Exponent = e.ToByteArray();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(_rsaParms);
当然还有例外。
好的,所以根据@Iridium 的回答,我加倍了解我是如何计算公共指数的,但我确实做错了,因此得出了太大的公共指数。在我对正确方法的研究中,我发现这个非常有用的网站可以计算指数,通过它我能够检查自己并找到我的错误。
【问题讨论】: