2011-10-10 183 views
0

我想創建用於AES加密的密鑰。我找到了一種使用Java的keytool來做到這一點的方法。訣竅是指定密鑰庫的類型是JCEKS,而不是默認的JCE。想要爲AES加密創建密鑰

所以這個命令會打造關鍵:

keytool -genseckey -alias aestest -keyalg AES -keysize 192 -storetype JCEKS 

我的問題是:

  1. 如何在赫克我得到的是生成的密鑰進行密鑰庫,並放到一個文件我可以使用它!?

  2. 是否有AES密鑰必須具有的特殊屬性,或者我可以選擇任意192位作爲我的AES密鑰,從而避免需要使用keytool?

感謝 彼得

回答

2

你可以選擇任意的關鍵 - 任何隨機的數據就行了。通常情況下,你可能需要一個實際的密鑰生成器的唯一場景是當你生成密鑰對(公鑰和私鑰),在這種情況下,這兩個密鑰必須進行數學鏈接,但AES是對稱密碼,只有一個密鑰,可以是任何密鑰。

-2

U無需從密鑰庫中獲取生成的密鑰。 U可以通過提供密鑰庫密碼來使用它。這是一個用於在keytool中生成密鑰的UI。 http://www.fuin.org/keytool-iui/keytool-iui.jnlp。 運行以下命令 a。 jarsigner -verbose -keystore keys.jks Unsigned.apk alias b。的zipalign -f -v 4 Signed.apk Zipped.apk

參見本:http://developer.android.com/guide/publishing/app-signing.html

我不使用任何192位的AES密鑰思考,從而避免了需要使用密鑰工具都將工作。即使是這樣,它不是一個先例,因爲你需要更新你的應用程序相同的密鑰。

+1

謝謝你的想法。但是,我沒有使用AES算法來建立身份(通過簽署一個apk文件)。我想用它來加密。爲此,我需要將其從密鑰存儲區中取出。 Sun的部分內容並沒有很好地考慮到整個密鑰庫的問題。 –