【问题标题】:C# RSA encrypt/decrypt throws exceptionC# RSA 加密/解密抛出异常
【发布时间】:2010-12-10 10:36:07
【问题描述】:

我正在尝试为一小部分信息设置一个简单的服务器端 RSA 加密,该信息将在客户端解密。作为概念证明,我写了几行代码来确保可以从 xml 加载公钥和私钥。然而,我正在努力让最简单的东西在我的机器上运行:

  byte[] bytes = Encoding.UTF8.GetBytes("Some text");
  bool fOAEP = true;

  // seeding a public and private key
  RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
  var publicKey = rsa.ToXmlString(false);
  var privateKey = rsa.ToXmlString(true);

  //server side
  RSACryptoServiceProvider rsaServer = new RSACryptoServiceProvider();
  rsaServer.FromXmlString(privateKey);
  var encrypted = rsaServer.Encrypt(bytes, fOAEP);

  //client side
  RSACryptoServiceProvider rsaClient = new RSACryptoServiceProvider();
  rsaClient.FromXmlString(publicKey);
  var decrypted = rsaClient.Decrypt(encrypted, fOAEP);

对 Decrypt 的最后一次调用引发 CryptographicException,并显示消息“解码 OAEP 填充时发生错误。”。我必须在这里遗漏一些完全明显的东西。我需要更多设置 rsa 实例还是初始 rsa 播种实例?

【问题讨论】:

    标签: c# rsacryptoserviceprovider


    【解决方案1】:

    您应该使用公钥进行加密,使用私钥进行解密。 看这里:RSACryptoServiceProvider decrypt with public key

    现在,让我们回到 RSACryptoServiceProvider 类。这 加密方法仅使用加密 公钥和解密方法 只使用私钥解密。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      相关资源
      最近更新 更多