【发布时间】:2016-08-18 08:24:24
【问题描述】:
我正在尝试将一些项目从 .net framework 4.5 迁移到 .net core。
尝试迁移旧的crypting/decrypting 方法时会出现问题。
该方法是一个TripleDES,其键是MD5 哈希。
MD5 哈希总是返回 16 个字节。
这在 .net framework 4.5 中运行良好,但在 .net core 中 System.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