【发布时间】:2013-09-02 06:54:33
【问题描述】:
我正在我的 C# 程序中从 XML 字符串中读取私钥和公钥。加密(使用私钥)工作正常。但是当涉及到解密(使用公钥)时,它会引发以下错误。
System.Security.Cryptography.Cryptographic Exception {“密钥不存在。\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);
这是为什么呢?我到处搜索,但找不到任何解决方案。
提前致谢。
【问题讨论】:
-
哪一行出错了?
-
@ : - byte[] 解密 = rsaa.Decrypt(encrypted,false);
-
对加密的字节做
UTF8.GetString会出问题,加密的结果不是一个有效的字符串,把它当作一个字节序列来处理。
标签: c# .net encryption cryptography rsa