gpt4 book ai didi

java - 尝试使用 bouncycaSTLe 加密抛出错误

转载 作者:行者123 更新时间:2023-12-02 03:01:20 25 4
gpt4 key购买 nike

我正在尝试使用 bouncycaSTLe jar 来加密我的代码:

private static byte[] encrypt(byte[] plain, byte[] key, byte[] iv) throws Exception
{
PaddedBufferedBlockCipher aes = new PaddedBufferedBlockCipher(new CBCBlockCipher(
new AESEngine()));
CipherParameters ivAndKey = new ParametersWithIV(new KeyParameter(key), iv);
aes.init(true, ivAndKey);
return cipherData(aes, plain);
}

这是我的主要内容:

    String msg="hello";
String key="123";

SecureRandom secureRandom = new SecureRandom();
byte[] keyB = new byte[16];
secureRandom.nextBytes(keyB);
SecretKey secretKey = new SecretKeySpec(keyB, "AES");

byte[] enc=encrypt(msg.getBytes(),key.getBytes(),keyB);

System.out.println(new String(enc));

但我/正在得到

Exception in thread "main" java.lang.IllegalArgumentException: Key length not 128/192/256 bits.
at org.bouncycastle.crypto.engines.AESEngine.generateWorkingKey(Unknown Source)
at org.bouncycastle.crypto.engines.AESEngine.init(Unknown Source)
at org.bouncycastle.crypto.modes.CBCBlockCipher.init(Unknown Source)
at org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.init(Unknown Source)
at Aes.encrypt(Aes.java:122)
at Aes.main(Aes.java:47)

最佳答案

您没有将您认为的内容传递到 encrypt() 方法中:

String key="123";

byte[] enc=encrypt(msg.getBytes(),key.getBytes(),keyB);

您正在传递编码的字符串内容,而不是您在其中创建几行的键数组。

关于java - 尝试使用 bouncycaSTLe 加密抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61403781/

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