2013-02-17 127 views
5

我必須爲我的計算機安全類做一個實驗,我將使用gpg和OpenSSL來進行安全通信。我感到困惑的這一步:在生成aes256 cbc密鑰時使用SHA1作爲消息摘要

Use 'openssl enc' command line symmetric cipher routine to generate a 
256bit AES key in CBC mode. You should use SHA1 as a message digest 
function for generating the key. Save generated secret key, IV, and 
salt into file named aes.key. (Use –P opting to print out the key, 
salt and IV used then immediately exit, don’t do any encryption at 
this step.) 

但我希望通過the man pages for openssl enc,我看到消化沒有選項。我知道有一個openssl dgst命令,但它只是計算輸入的散列。這個問題有缺陷嗎? 「你應該使用SHA1作爲消息摘要函數來生成密鑰」是什麼意思?我是否生成密鑰然後只是SHA1(key.aes)?

任何幫助,這將不勝感激。

謝謝。

回答

5

openssl enc你給它當一個未知的參數,如-h獲取使用信息:

-md   the next argument is the md to use to create a key 
       from a passphrase. One of md2, md5, sha or sha1 

所以,你應該用-md sha1指定SHA1哈希函數密鑰派生使用 。對於步驟的完整的解決方案是:

openssl enc -aes-256-cbc -md sha1 -P 

他們實際上似乎已經忘記了在manual page解釋-md

+1

非常感謝你 – 2013-02-17 01:48:59