-1

我有一个 RSA 加密文件,我想在 .NET 中用 C# 解密它

我知道了。(1024位编码)消息(密文)的参数解密

  • 模量
  • 公共指数
  • 私人指数
  • 素数 p
  • 素数
  • 质数指数 p
  • 质数指数 q
  • CRT系数

密文为 HEX 格式

我知道解密消息的 CRT 方法,但不清楚如何使用它

m1 = (ciphertext ^ dP) Mod P
m2 = (ciphertext ^ dQ) Mod Q
h = (qInv * (m1 - m2)) Mod P
m = m2 + (h * Q)

我尝试使用 foll 命名空间执行解密

System.Security.Cryptography

有人可以帮我提供一个示例代码来实现解密,因为这是我第一次处理解密。

是否有现成的 API 可用?我只需要传递参数&我将收到所需的输出。

4

2 回答 2

2

是的,您可以使用System.Security.Cryptography命名空间。MSDN 参考对于一些示例,只需深入了解MSDN 库。例如,这里有RSACryptoServiceProvider的示例。

于 2011-11-29T12:48:53.560 回答
0

首先创建一个RSAParameters结构并用您自己的 RSA 参数填充它。接下来创建一个RSACryptoServiceProvider实例并调用ImportParameters您之前定义的参数。此时,您应该能够Decrypt使用(或不使用)OAEP 填充来调用您的数据。

所以像:

RSAParameters p = new RSAParameters ();
p.D = d;
// ... all parameters
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider ();
rsa.ImportParameters (p);
byte[] decrypted = rsa.Decrypt (encrypted, false);
于 2011-11-29T12:59:43.283 回答