我正在尝试将一些项目从 .net framework 4.5
迁移到 .net core
。
尝试迁移旧的crypting/decrypting
方法时会出现问题。
该方法是一个 TripleDES
,其 key 是 MD5 散列。
MD5 散列总是返回 16 个字节。
这在 .net framework 4.5
中运行良好,但在 System.Security.Cryptography.Algorithms
TripleDES
中的 .net core
中运行良好> 只接受 24 字节的 KeySize。在 4.5 中,它接受 16 个字节或 24 个字节。
有没有我可以尝试的解决方法?
稍后编辑: TripleDes 类在初始化时调用新的 TripleDesImplementation,即 this .这里声明 CNG 不支持 128 位 key 。
最佳答案
不幸的是,Framework 4.5 没有使用 TripleDes 实现的开源版本。
但是,假设它遵循 Triple DES 的正常惯例,当它提供两个 key 时,它会重用第一个 key 作为第三个 key ,您应该能够使用现有的 16 字节 key 并重复前 8 个字节以形成 24 字节 key ,并且它应该产生与以下相同的结果你以前获得过。
关于c# - TripleDES 16 字节不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39013264/