如何导出aes-128-cbc解密的密钥和初始化向量

时间:2017-08-10 13:57:29

标签: encryption openssl cryptography aes

我从https://www.openssl.org/source/下载了openssl-1.0.2l.tar.gz源代码包,并为Windows制作了全新的x64版本。我使用openssl应用程序使用以下命令加密文件:

openssl enc -aes-128-cbc -a -salt -in data.txt -kfile key.txt -out encrypted.txt -p

现在,我想在.NET应用程序中使用加密文件(用C#编写)。我读取加密文件(使用Base64进行编码,因为-a开关),对其进行解码,并提取前16个字节以获取OpenSSL生成的盐...这到目前为止工作正常; salt的前缀为Salted__,以下8个字节是实际的salt值。

到目前为止我学到的是OpenSSL读取给定密钥文件的第一行并使用该字符串作为密码。实际的密钥和初始化向量来自passphase,salt和一些哈希,这些都没有正式记录。

-p开关给了我用于加密的密钥和初始化向量,但我想知道,我如何从已知的密码和盐中复制数据......我拥有的一切尝试给我关键和矢量数据,这与openssl应用程序给我的不同。

当然,我已经在stackoverflow和crypto.stackexchange上找到了类似的问题(和答案),但是没有一个解决方案似乎有用,或者与aes-256-cbc有关... ...不确定,如果这样做的话差?

正确派生密钥和初始化向量需要做些什么?

0 个答案:

没有答案
相关问题