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

use*_*519 5 unix encryption aes

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

Ebb*_*sen 5

AES密钥只是一些随机字节,16,24或32字节的长度-取决于密钥的大小,并且原则上可以存储在文件系统作为一个二进制文件。但是我建议您将它放在 Java Key Store 中,并通过密码保护它。您可以使用 java keytool 来完成所有这些,如下所示:

keytool -genseckey -alias myKey -keyalg AES -keysize 128 -storepass passw0rd -keypass passw0rd -storetype JCEKS -keystore keystore.jks
Run Code Online (Sandbox Code Playgroud)

然后,您可以从 java 中读取 if ,例如:

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...
Run Code Online (Sandbox Code Playgroud)