gpt4 book ai didi

java - AES - 生成 key 并加载它会产生无效 key 异常

转载 作者:行者123 更新时间:2023-11-30 11:52:59 24 4
gpt4 key购买 nike

一段时间以来,我一直在尝试使用 Java 进行 AES 加密和解密。不幸的是我没有太多运气。现在我可以用一种方法生成 key ,代码已显示

keyGen = KeyGenerator.getInstance("AES");
SecureRandom random = SecureRandom.getInstance();
keyGen.init(size, random);
SecretKey key = keyGen.generateKey();
AesKey = key.getEncoded();

为了使用 key ,我将其转换回 SecretKeySpec 并尝试加密输入字节。我的加密代码如下所示。

SecretKeySpec keySpec = new SecretKeySpec(AesKey, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
return cipher.doFinal(input);

但是,当我调用 cipher.init 行时,我得到一个 InvalidKeyException。

我是否错误地生成了 key ?我是否错误地加载了 key ?是组合吗?我一直坚持这一点,所以任何见解都将不胜感激。

更新

所以我没有意识到,调用生成函数的部分传入了一个无效的大小。当我找到那部分代码并将其更改为 256 时,一切正常。

最佳答案

调用生成函数的代码传递了一个无效的大小。我以为那会被 keyGen.generateKey() 行捕获,但我错了。直到我真正尝试使用 key 时,它才抛出错误。更改调用生成函数的代码,使大小为 256 解决了这个问题。

关于java - AES - 生成 key 并加载它会产生无效 key 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566925/

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