簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM