gpt4 book ai didi

java - 如何在 Java 中创建安全的随机 AES key ?

转载 作者:IT老高 更新时间:2023-10-28 20:31:06 26 4
gpt4 key购买 nike

使用标准 JDK 在 Java 中生成安全、随机 AES key 的推荐方法是什么?

在其他帖子中,我发现了这一点,但使用 SecretKeyFactory 可能是一个更好的主意:

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecureRandom random = new SecureRandom(); // cryptograph. secure random
keyGen.init(random);
SecretKey secretKey = keyGen.generateKey();

如果答案包括解释为什么它是生成随 secret 钥的好方法,那就太好了。谢谢!

最佳答案

我会使用您建议的代码,但稍微简化一下:

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256); // for example
SecretKey secretKey = keyGen.generateKey();

让提供者选择它计划如何获得随机性 - 不要定义可能不如提供者已经选择的东西。

此代码示例假定 (as Maarten points out below) 您已将 java.security 文件配置为在列表顶部包含您的首选提供程序。如果要手动指定提供者,只需调用 KeyGenerator.getInstance("AES", "providerName");

要获得真正安全的 key ,您需要使用 hardware security module (HSM) 来生成和保护 key 。 HSM 制造商通常会提供一个 JCE 提供程序,使用上面的代码为您生成所有 key 。

关于java - 如何在 Java 中创建安全的随机 AES key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18228579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com