2014-02-18 47 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...