OpenSSL对称密钥与.NET对称密钥-不匹配

kenyu73

我正在尝试使用OpenSSL加密字符串,然后将该简单字符串传递给C#应用程序以对其进行解密。问题是我不能使用共享的私人“明文”密码,因为私人密钥生成的密码不一样。如果我将c#生成的密钥用作-K十六进制密钥,则解密就可以了。

我觉得密码没有转换为c#CryptDeriveKey和OpenSSL之间的相同密钥PKCS#5 padding

同样,如果我在OpenSSL -K中使用c#中的十六进制密钥,则它将正确加密和正确解密。

我已经看到了人们在C#中使用OpenSSL库的示例。.NET是否System.Security.Cryptography不完全与OpenSSL兼容?

C:\OpenSSL-Win32\bin>echo test|openssl enc -des-ede3 -e -nosalt -md 
sha1 -base64 -pass pass:MyTestKey -iv 0 -p

密钥= E76B45CFD69213824DC968FCC31E39285BAA8A11DD8395DE
加密:3IFZ8w6kLa0 =

// ** code simplified so its compacted  (wont build)...
var tdes = new TripleDESCryptoServiceProvider();
tdes.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 };
tdes.Mode = "ECB";
tdes.Padding = "PKCS7";
var pdb = new PasswordDeriveBytes("MyTestKey", null);
tdes.Key = pdb.CryptDeriveKey("TripleDES", "SHA1", 192, 0);

密钥:B5E67ADF58435DBA0D67CDC49410E6BA2004DA2F97432F76
加密:i + fxaM3 / KAg =

Mathias R. Jessen

openssl不会在上使用奇特的密钥派生函数pass,它只是计算输入的SHA1哈希值。

要在C#中执行等效操作,请使用SHA1 CSPComputeHash()覆盖键:

SHA1CryptoServiceProvider SHA1 = new SHA1CryptoServiceProvider();
tdes.Key = SHA1.ComputeHash(System.Text.Encoding.ASCII.GetBytes("MyTestKey"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenSSL:使用ECC公钥加密对称密钥

来自分类Dev

.ssh密钥不匹配。

来自分类Dev

在C#中创建我的对称密钥

来自分类Dev

为什么非对称密钥更安全?

来自分类Dev

SQL Server证书和对称密钥

来自分类Dev

SSL对称密钥存储在哪里?

来自分类Dev

如何导出对称加密密钥?

来自分类Dev

SSL使用哪种对称密钥算法?

来自分类Dev

将对称密钥存储在Java卡中

来自分类Dev

从 jPBC 保存和加载非对称密钥

来自分类Dev

SSH密钥指纹不匹配

来自分类Dev

当需要对密钥进行转换时,密钥如何对称?

来自分类Dev

生成对称密钥并存储在android密钥库中

来自分类Dev

是否可以在SQL Server 2014中为.NET框架程序集创建非对称密钥?

来自分类Dev

密钥库和信任库不匹配

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

SSL在使用对称加密密钥时的奇怪行为?

来自分类Dev

GPG-具有TWOFISH对称加密的最大密钥大小

来自分类Dev

如何使用“ SecItemAdd”在OS X中存储对称密钥?

来自分类Dev

Azure的Key Vault是否支持对称密钥加密?

来自分类Dev

Terraform从非对称KMS密钥对获取公钥

来自分类Dev

密钥大小小于128位的对称加密

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

确定在Swift中创建对称密钥的异常原因

来自分类Dev

如何在Java中以非对称加密生成密钥对?

来自分类Dev

使用ursa(nodejs模块)生成对称密钥?

来自分类Dev

gnupg:使用特定的密钥对stdin进行对称加密

来自分类Dev

如何获得SSL握手中生成的对称密钥?

来自分类Dev

如何在Android Keystore中存储对称密钥

Related 相关文章

热门标签

归档