我需要生成一个用于AES加密/解密的随机密钥,并将该密钥写入UNIX文件中。有人能帮助我学习如何做到这一点吗?
我需要生成一个用于AES加密/解密的随机密钥,并将该密钥写入UNIX文件中。有人能帮助我学习如何做到这一点吗?
AES密钥只是一些随机字节,长度为16、24或32个字节-取决于密钥大小,并且原则上可以存储在文件系统中作为二进制文件。然而,我建议您将其放入Java密钥库中并通过密码进行保护。您可以使用java keytool来完成所有这些操作,例如:
keytool -genseckey -alias myKey -keyalg AES -keysize 128 -storepass passw0rd -keypass passw0rd -storetype JCEKS -keystore keystore.jks
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...
dd bs=1 if=/dev/random of=/home/users/cryptonoob/aes_key count=32
翻译为中文:从/dev/random
读取32个字节的随机数据并写入到/home/users/cryptonoob/aes_key
文件中。 - President James K. Polk