gpt4 book ai didi

c# - C# 中的 openssl 以匹配 linux 中的 openssl des-ede3-cbc

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:58:45 29 4
gpt4 key购买 nike

我需要在 linux 中加密数据并在 Windows C# 应用程序中解密此数据。我在 linux 中使用以下命令加密。openssl enc -des-ede3-cbc -K 3B388F0EFDA72AF16DBA734FE9704AF7 -iv 0000000000000000 -in file.txt -out file.enc。如果尝试使用 http://sourceforge.net/projects/openssl-net/ 中提供的 DLL 在 C# 应用程序中解密.我无法获得正确的解密数据。请向我发送等效的 C# 代码以在 Windows 中解密。

最佳答案

看看MSDN examples for TripleDESCryptoServiceProvider并且不要忘记为您的实例设置正确的 Mode、Key、IV 和 Padding 属性:

var provider = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
provider.Mode = CipherMode.CBC;
provider.Key = new byte[] { 0x3B, 0x38, 0x8F, 0x0E, 0xFD, 0xA7, 0x2A, 0xF1, 0x6D, 0xBA, 0x73, 0x4F, 0xE9, 0x70, 0x4A, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
provider.IV = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
provider.Padding = System.Security.Cryptography.PaddingMode.PKCS7;

您还应该在命令中添加 -p 选项,以便您可以看到 OpenSSL 用于加密的实际 key :

$ openssl enc -des-ede3-cbc -K 3B388F0EFDA72AF16DBA734FE9704AF7 -iv 0000000000000000 -in file.txt -out file.enc -nosalt -p
key=3B388F0EFDA72AF16DBA734FE9704AF70000000000000000
iv =0000000000000000

您在命令行上传递的 key 太短,因此 OpenSSL 会向其附加零,您需要在 C# 代码中使用完全相同的 key 。

关于c# - C# 中的 openssl 以匹配 linux 中的 openssl des-ede3-cbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855629/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com