[英]How to use C API to decode the aes-256-cbc file generated by openssl command line?
我已閱讀的鏈接 ,我可以由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);
輸出錯誤。 有誰知道如何解決? 也許我叫錯了功能? 例如:EVP_PBE_CipherInit? 我完全失去了OpenSSL中的文檔和源代碼。
歡迎任何建議。 先感謝您。
OpenSSL的手冊頁說從密碼中生成的密鑰和IV值,如果沒有提供。 此外,它還提供了-P
選項來打印salt,key和iv值。 (這是一個需要被傳遞給函數,而不是密碼的密鑰)。
鹽值可以從文件頭獲得。 然后,密鑰和iv必須使用相同的密鑰重新生成。
這個stackexchange 頁面提供了非常詳細的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.