gpt4 book ai didi

java - AES 加密 Java 无效 key 长度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:50 25 4
gpt4 key购买 nike

我正在尝试创建一个 AES 加密方法,但由于某种原因我不断收到

java.security.InvalidKeyException: Key length not 128/192/256 bits

代码如下:

public static SecretKey getSecretKey(char[] password, byte[] salt) throws NoSuchAlgorithmException, InvalidKeySpecException{
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
// NOTE: last argument is the key length, and it is 256
KeySpec spec = new PBEKeySpec(password, salt, 1024, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
return(secret);
}


public static byte[] encrypt(char[] password, byte[] salt, String text) throws NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, InvalidParameterSpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException{
SecretKey secret = getSecretKey(password, salt);

Cipher cipher = Cipher.getInstance("AES");

// NOTE: This is where the Exception is being thrown
cipher.init(Cipher.ENCRYPT_MODE, secret);
byte[] ciphertext = cipher.doFinal(text.getBytes("UTF-8"));
return(ciphertext);
}

谁能看出我做错了什么?我认为它可能与 SecretKeyFactory 算法有关,但这是我能找到的唯一一种在我开发的终端系统上受支持的算法。任何帮助,将不胜感激。谢谢。

最佳答案

要获得更强的 key 强度加密,您需要下载 Java 加密扩展 (JCE) 无限强度管辖策略文件。

http://java.sun.com/javase/downloads/index.jsp (检查其他下载)。

关于java - AES 加密 Java 无效 key 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2568841/

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