2014-02-18 49 views
0

我必須生成一個用於AES加密/解密的隨機密鑰,並將此密鑰寫入UNIX中的文件。有人可以幫助我學習如何執行這個 ?如何生成AES密鑰並將密鑰寫入UNIX中的文件

+0

我會建議使用的搜索引擎 的http:// stackoverflow.com/questions/3451670/java-aes-and-using-my-own-key – tr4pt

+0

只是好奇...你需要什麼?如果你正在嘗試加密通信,我會建議使用已經實現了SSL的標準庫,而不是滾動你自己的。 –

+0

@MichaelAaronSafyan:我必須通過java類來進行一些加密/解密。我希望密鑰生成只發生一次,並且應該使用UNIX命令手動完成。我將從java類中的文件讀取此密鑰並執行加密/解密。 – user3244519

回答

0

一種AES密鑰只是一些隨機字節16,24或32個字節的長度, - 取決於密鑰的大小,並且原則上可以存儲在文件系統作爲一個二進制文件。不過,我建議您將它放在Java密鑰庫中,並通過密碼保護它。您可以使用Java keytool做這一切,就像這樣:

keytool -genseckey -alias myKey -keyalg AES -keysize 128 -storepass passw0rd -keypass passw0rd -storetype JCEKS -keystore keystore.jks 

然後,您可以從Java讀取如果像:

KeyStore keyStore = KeyStore.getInstance("JCEKS"); 
keyStore.load(new FileInputStream("keystore.jks"), "passw0rd".toCharArray()); 
Key key = keyStore.getKey("myKey", "passw0rd".toCharArray()); 
byte[] raw = key.getEncoded(); 
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); 
etc...