【发布时间】:2015-12-19 08:31:52
【问题描述】:
我正在开发一个加密解密软件。我使用 RSA 加密来加密我的对称密钥。
我按照Walkthrough: Creating a Cryptographic Application中提供的代码进行操作
我的加密和解密在同一台机器上成功完成。但是当我尝试从其他计算机解密时,出现错误:正在发生错误数据。(可以从同一台计算机解密。)
我认为问题在于从 keycontainer 获取私钥。第二台机器如何获取第一台机器生成的私钥。
我用谷歌搜索了很多,但所有东西都在同一台机器上。
请帮助我,给我一个在其他机器上获取私钥的想法。
public void GetPrivateKey()
{
string c;
cspp.KeyContainerName = keyName;
rsa = new RSACryptoServiceProvider(cspp);
rsa.PersistKeyInCsp = true;
if (rsa.PublicOnly == true)
c= "Key: " + cspp.KeyContainerName + " - Public Only";
else
c = "Key: " + cspp.KeyContainerName + " - Full Key Pair";
}
public string decryptkey(string at)
{
byte[] KeyEncrypted;
KeyEncrypted = File.ReadAllBytes(at);
//System.IO.File.ReadAllBytes(at);//for good
objr.GetPrivateKey();
byte[] KeyDecrypted = objr.rsa.Decrypt(KeyEncrypted, false);
string skey = GetString(KeyDecrypted);
return skey;
}
Bad data Error发生在这一行,
byte[] KeyDecrypted = objr.rsa.Decrypt(KeyEncrypted, false);.
请..
【问题讨论】:
标签: c# winforms cryptography rsa