通过 RSACryptoServiceProvider 加密/解密文件

发布于 2024-09-11 05:46:14 字数 725 浏览 3 评论 0原文

我需要在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

逆夏时光 2024-09-18 05:46:14

这是因为 RSACryptoServiceProvider(非对称)只能用于加密用于加密文档的对称密钥。

This is because RSACryptoServiceProvider (assymmetric) should be used only to encrypt the symmetric key used for encrypt a document.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文