如何使用C API对openssl命令行生成的aes-256-cbc文件进行解码?

如何使用C API对openssl命令行生成的aes-256-cbc文件进行解码?,c,openssl,C,Openssl,我已经读过了,我可以用C API正确地编码/解码数据 但是,我有一个由openssl命令行生成的文件: openssl aes-256-cbc -in plain.txt -out encrypted.txt > enter password from stdin 希望使用C API对输出进行解码。代码如下: unsigned char key[] = "password"; unsigned char iv[] = ""; // I don't know what is the de

我已经读过了,我可以用C API正确地编码/解码数据

但是,我有一个由openssl命令行生成的文件:

openssl aes-256-cbc -in plain.txt -out encrypted.txt
> enter password from stdin
希望使用C API对输出进行解码。代码如下:

unsigned char key[] = "password";
unsigned char iv[] = "";  // I don't know what is the default iv.
EVP_CipherInit(&ctx, EVP_aes_256_cbc(), key, iv, 0);
输出错误。有人知道怎么修吗?也许我调用了错误的函数?例如:执行副总裁是谁?我完全沉浸在openssl的文档和源代码中


欢迎任何建议。提前感谢。

openssl手册页说,如果未提供密钥和iv值,则会从密码生成。它还提供了一个
-P
选项来打印salt、key和iv值。(这是需要传递给函数的密钥,而不是密码)

可以从文件头获取salt值。然后,必须使用相同的方法重新生成密钥和iv


此stackexchange提供了非常详细的答案。

非常感谢!参考资料让我对openssl有了深刻的了解。