【问题标题】:TripleDES 16 Byte not workingTripleDES 16 字节不工作
【发布时间】:2016-08-18 08:24:24
【问题描述】:

我正在尝试将一些项目从 .net framework 4.5 迁移到 .net core。 尝试迁移旧的crypting/decrypting 方法时会出现问题。 该方法是一个TripleDES,其键是MD5 哈希。 MD5 哈希总是返回 16 个字节。 这在 .net framework 4.5 中运行良好,但在 .net coreSystem.Security.Cryptography.Algorithms TripleDES 仅接受 24 字节的 KeySize。在 4.5 中,它接受 16 字节或 24 字节。 有什么我可以尝试的解决方法吗?

稍后编辑: 初始化时的 TripleDes 类调用 new TripleDesImplementation ,即 this 。这里声明 CNG 不支持 128 位密钥。

【问题讨论】:

  • 我认为你的问题是关于 .net-core 而不是 asp.net-core。
  • TripleDes 类本身的代码似乎表明both key sizes are supported。显然TripleDes 是一个抽象类,所以你可以添加一些示例代码来准确显示你是如何创建它的以及如何/何时指示错误。
  • TripleDes 类在初始化时会调用 new TripleDesImplementation,即 this。并且这里声明 CNG 不支持 128 位密钥。
  • @Ndy 请注意,2 密钥(128 位)3DES 已被 NIST 弃用。您可能要考虑尽快而不是延迟升级(到 AES)。 3 键 TDES 只为您提供约 112 位的安全性,2 键 3DES 少得多。

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


【解决方案1】:

很遗憾,Framework 4.5 没有使用 TripleDes 实现的开源版本。

但是,假设它遵循Triple DES 的正常约定,当它提供两个密钥时,它会重用第一个密钥作为第三个密钥,您应该能够使用现有的 16 字节密钥并重复前 8 个字节形成一个 24 字节的密钥,它应该会产生与您之前获得的结果相同的结果。

【讨论】:

  • 是的,确实有效,但不知道它重用了前 8 个字节。感谢您的回答。
  • 太棒了!,从 2 小时开始努力寻找解决方案。完美运行。
  • 非常感谢!
猜你喜欢
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 2014-06-01
  • 1970-01-01
  • 2017-02-02
  • 2018-07-30
相关资源
最近更新 更多