gpt4 book ai didi

java - PBEKeySpec 是否可在 Java 中重用?

转载 作者:行者123 更新时间:2023-11-29 05:56:53 24 4
gpt4 key购买 nike

使用相同的 IV、key、iteration 和 salt 作为输入,每次生成的 PBEKeySpec 是否都相同?即:

SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWithSHA256And256BitAES-CBC-BC");
KeySpec spec = new PBEKeySpec(secureKey.toCharArray(), SALT.getBytes(), KEY_ITERATION, KEY_LENGTH);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");

我每次都会得到相同的 SecretKey 吗?我只是担心用户下次启动程序时,SecretKey 对象被更改,无法用于解密该值。

最佳答案

是的。只要输入和算法按照您在问题中指定的那样固定,它就会继续在给定相同输入的情况下生成相同的 key 。您应该能够通过循环运行代码并每次打印来测试它

System.out.println(Arrays.toString(secret.getEncoded));

此外,API 指定了一个除密码外的不可变对象(immutable对象)。对于密码(char[]),API 指定用户 可以在 PBE 操作后覆盖该值。

请注意,原则上从 SecretKeySpec 派生的类可以实现可变接口(interface)。 SecretKeySpec 被扩展、可变并且 keyfactory 类或任何其他类都不太可能改变内容。

关于java - PBEKeySpec 是否可在 Java 中重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751511/

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