1

我正在 C# 程序中从 XML 字符串中读取私钥和公钥。加密(使用私钥)工作正常。但是当涉及到解密(使用公钥)时,它会引发以下错误。

System.Security.Cryptography.Cryptographic 异常 {"密钥不存在。\r\n"}

var rsa = new RSACryptoServiceProvider();

rsa.FromXmlString(_privateKey);
rsa.FromXmlString(_publicKey);

byte[] messagee = Encoding.UTF8.GetBytes("win win win");

byte[] encrypted = rsa.Encrypt(messagee, false);
string encString = Encoding.UTF8.GetString(encrypted);

byte[] decrypt = rsa.Decrypt(encrypted,false);
string decString = Encoding.UTF8.GetString(decrypt);

这是为什么?我到处搜索,但找不到任何解决方案。

提前致谢。

4

1 回答 1

1

看看这个链接,它可能会有所帮助。问题出在以下几行...

rsa.FromXmlString(_privateKey);
rsa.FromXmlString(_publicKey);

...因为私钥被公钥覆盖..

于 2013-09-02T09:08:17.453 回答