c# - TripleDES 16 字节不工作

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

我正在尝试将一些项目从 .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/

相关文章:

javascript - if (buffer[0] & 0x80) 这个条件的含义是什么

c# - .NET 4 exe 崩溃并显示 80131506 退出代码

c# - 判断程序是否崩溃

c# - 调整 DataGridView 宽度以适应列

c# - IPrincipal.IsInRole VS PrimaryPermission.Demand?

c# - Linq 从两个列表中返回所有元素对?

.net - 将 dll 部署到 GAC

c# - 检查给定的可执行文件是否经过数字签名且有效?

.net - 安装了哪个版本的 .NET Core SDK

java - 安全随机 : init once or every time it is needed?