【问题标题】:Can't switch TripleDES to CFB or OFB mode无法将 TripleDES 切换到 CFB 或 OFB 模式
【发布时间】:2021-09-05 00:28:06
【问题描述】:

我正在使用TripleDES 和三种不同的模式(CBCCFBOFB)对一些数据进行加密,如下所示:

using (TripleDES alg = TripleDES.Create())
{
    var param = GetParams();
    alg.KeySize = param.keySize;
    alg.BlockSize = param.blockSize;
    alg.Key = param.sessionKey;
    alg.IV = param.IV;
    alg.Mode = param.mode;

    using (ICryptoTransform encryptor = alg.CreateEncryptor(alg.Key, alg.IV))

每当我使用CFBOFB 作为模式时,最后一行都会引发异常(Specified cipher mode is not valid for this algorithm.)。

是不是我做错了什么?

【问题讨论】:

  • @Topaco GetParams() 是我获取这些值的函数。 .NET 变体是什么意思?
  • @Topaco 在 NuGet 管理器中我下载了 .NET Core
  • 关于 .NET 核心中对 CFB / OFB 的支持的页面底部:“向 AES (#15771) #38211 添加了对 CFB 的支持”。嗯,是的。
  • 请注意,用于 .NET 的 Bouncy Castle 加密库应该包含所有这些模式,但要注意它将使用软件加密,没有硬件加速或类似的东西。

标签: c# .net-core cryptography 3des tripledes


【解决方案1】:

基本上是因为 .Net Core 不支持它。 见https://github.com/dotnet/runtime/pull/38211

除非您正在处理遗留代码,否则您应该使用 AES 而不是 3DES。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多