如何使用C API对openssl命令行生成的aes-256-cbc文件进行解码?
我已经读过了,我可以用C API正确地编码/解码数据 但是,我有一个由openssl命令行生成的文件:如何使用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
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有了深刻的了解。