sor*_*rke 1 c# rsacryptoserviceprovider
我正在尝试设置一小块信息的简单服务器端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);
Run Code Online (Sandbox Code Playgroud)
对Decrypt的最后一次调用会抛出一个CryptographicException,并显示消息"解码OAEP填充时出错".我必须在这里遗漏一些完全明显的东西.我是否需要更多设置rsa实例或初始rsa种子实例?
您应该使用公钥进行加密,使用私钥进行解密.看看这里:RSACryptoServiceProvider使用公钥解密
现在,让我们回到RSACryptoServiceProvider类.Encrypt方法仅使用公钥加密,而Decrypt方法仅使用私钥解密.
归档时间: |
|
查看次数: |
3585 次 |
最近记录: |