【问题标题】:How to read RijndaelManaged 256 encrypted files in .NET Core?如何在 .NET Core 中读取 RijndaelManaged 256 个加密文件?
【发布时间】:2021-09-18 04:02:47
【问题描述】:

我的 .NET Core 应用程序不得不读取由 .NET Framework 4.6.x 编写的旧应用程序生成的文件。这个较旧的应用程序使用 System.Security.Cryptography.RijndaelManaged 实现加密文件。它使用 RijndaelManaged.BlockSize = 256。

结果是 .NET Core only supports .BlockSize = 128。不幸的是,我无法控制旧应用程序(而且已经生成了一堆文件)。

.NET Core 应用程序是否可以读取RijndaelManaged.BlockSize = 256 加密文件?

看旧应用的代码,好像是改编自here

【问题讨论】:

    标签: c# .net .net-core encryption


    【解决方案1】:

    是的,您可以将仅适用于 .NET 的 Bouncy Castle 库(在 C# 中)包含到您的项目中。这提供了一个RijndaelEngine,您可以在其中设置构造函数中的块大小。要实现 CBC 和填充,您还需要模式中的 CBCBlockCipher 和正确的填充,请参阅 here 示例(只需更换引擎并执行其他更改以使其适合您的用例)。

    【讨论】:

    • 是的,我找到了使用 Bouncy Castle 的 this helper class。如果有人要使用它,请确保 Encrypt 和 Decrypt 上的 Derivation number 相同。
    • 不过要小心字符串化的代码。密钥与密码短语不同,它根本不应该存储在字符串中。那里有很多糟糕的“帮助”类,实际上我根本不喜欢这些包装类。如果您要编写加密类,请将它们设为特定于用例。您不希望代码中到处都是维护不善/不安全的包装类(我去过那里)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2015-06-06
    • 1970-01-01
    • 2017-06-01
    • 2018-05-20
    • 2019-07-21
    相关资源
    最近更新 更多