【问题标题】:How to generate AES secret key and write the key to a file in UNIX如何生成 AES 密钥并将密钥写入 UNIX 中的文件
【发布时间】:2014-03-18 02:45:55
【问题描述】:

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

【问题讨论】:

  • 只是好奇...你需要这个做什么?如果您尝试加密通信,我建议您使用已经实现 SSL 的标准库,而不是自己滚动。
  • @MichaelAaronSafyan:我必须通过 java 类做一些加密/解密。我希望密钥生成只发生一次,应该使用 UNIX 命令手动完成。我将从 java 类中的文件中读取此密钥并执行加密/解密。
  • dd bs=1 if=/dev/random of=/home/users/cryptonoob/aes_key count=32

标签: unix encryption aes


【解决方案1】:

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 中读取 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...

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    相关资源
    最近更新 更多