如何生成AES密钥并将密钥写入UNIX中的文件

时间:2014-02-18 11:22:52

标签: unix encryption aes

我必须为AES加密/解密生成随机密钥,并将此密钥写入UNIX中的文件。有人可以帮助我学习如何执行此操作吗?

1 个答案:

答案 0 :(得分:4)

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...