gpt4 book ai didi

java - 我对 ICE 中的 KeyGenerator 和编码 key 感到困惑

转载 作者:行者123 更新时间:2023-11-29 09:23:12 24 4
gpt4 key购买 nike

现在我正在学习密码学,我对 JCE 很感兴趣,但我对 KeyGenerator 类感到困惑。我知道此类可以为对称算法生成 key ,但我不明白为什么要使用此类?,因为我可以使用 SecretKeyFactory 自行创建 key 并使用它来初始化密码对象,对吧?

喜欢下面这段代码

// Create Key
DESKeySpec desKeySpec = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

// Create Cipher
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, secretKey);

然后和这段代码比较

KeyGenerator generator = KeyGenerator.getInstance("AES", "BC");

generator.init(192);

Key encryptionKey = generator.generateKey();

它们有什么区别?他们做同样的事情吗?

还有,在什么情况下应该选择使用“getEncoded()”方法??

最佳答案

KeyGenerator 是一个用于生成 key 的便捷类。您可以告诉它您将在 Cipher 中使用什么算法,它可以生成与该算法匹配的 key ,您无需提供任何信息

您当然可以手动执行此操作,但它需要几个步骤,正如您在问题中所展示的那样(并且您甚至没有涉及在 byte[] key 中生成 key 数据) .

关于java - 我对 ICE 中的 KeyGenerator 和编码 key 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4851361/

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