TripleDES 16 字节不工作

TripleDES 16 Byte not working

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

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

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

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