gpt4 book ai didi

C# RSA 加密/解密抛出异常

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:38 24 4
gpt4 key购买 nike

我正在尝试为要在客户端解密的一小块信息设置一个简单的服务器端 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 播种实例?

最佳答案

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

Now, let's get back to the RSACryptoServiceProvider class. The Encrypt method ONLY encrypts using the public key and the Decrypt method only decrypts using the private key.

关于C# RSA 加密/解密抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com