System.Security.Cryptography.Cryptographic Exception {“Key不存在。\ r \ n”}

时间:2013-09-02 06:54:34

标签: c# .net encryption cryptography rsa

我正在使用C#程序中的XML String读取私钥和公钥。加密(使用私钥)工作正常。但是当涉及到解密(使用公钥)时,它会抛出跟随错误。

System.Security.Cryptography.Cryptographic Exception {“Key不存在。\ 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);

为什么?我搜遍了所有地方,但找不到任何解决办法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

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

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