通过 RSACryptoServiceProvider 加密/解密文件
我需要在 C# 中使用 RSA 算法来加密/解密文件(类型 pdf、txt、doc) 我从 XMl 文件导入密钥,
我使用此方法
public byte[] DecryptData(byte[] encrypted)
{
int nBytes = encrypted.Length;
byte[] ByteArray = new byte[nBytes];
RSACryptoServiceProvider rsa=new RSACryptoServiceProvider();
StreamReader reader = new StreamReader(@"E:\test\keyStore\Receiver\PrivateKey.xml");
string PrivateKeyXML = reader.ReadToEnd();
rsa.FromXmlString(PrivateKeyXML);
reader.Close();
//store decrypt data
ByteArray = rsa.Decrypt(encrypted, false);
////convert bytes to string
//ss = Global.enc.GetString(fromEncrypt);
return ByteArray;
}
ERROR MESSAGE="要解密的数据超出了 256 字节模数的最大值。"
请帮我
I need to encrypt/decrypt files (type pdf,txt,doc) by using RSA algorithm in c#
I import keys from XMl file
I use this method
public byte[] DecryptData(byte[] encrypted)
{
int nBytes = encrypted.Length;
byte[] ByteArray = new byte[nBytes];
RSACryptoServiceProvider rsa=new RSACryptoServiceProvider();
StreamReader reader = new StreamReader(@"E:\test\keyStore\Receiver\PrivateKey.xml");
string PrivateKeyXML = reader.ReadToEnd();
rsa.FromXmlString(PrivateKeyXML);
reader.Close();
//store decrypt data
ByteArray = rsa.Decrypt(encrypted, false);
////convert bytes to string
//ss = Global.enc.GetString(fromEncrypt);
return ByteArray;
}
ERROR MESSAGE="The data to be decrypted exceeds the maximum for this modulus of 256 bytes."
please, help me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为 RSACryptoServiceProvider(非对称)只能用于加密用于加密文档的对称密钥。
This is because RSACryptoServiceProvider (assymmetric) should be used only to encrypt the symmetric key used for encrypt a document.