官方提供的AesKit加密有BUG

如题,在idea执行以下代码报错。

public static void main(String[] args) {
    String key = AesKit.genAesKey();
    String content = "hello jfinal";
    byte[] encrypt = AesKit.encrypt(content, key);
}
Exception in thread "main" java.lang.RuntimeException: Illegal key size
	at com.jfinal.kit.AesKit.encrypt(AesKit.java:60)
	at com.jfinal.kit.AesKit.encrypt(AesKit.java:30)
	at com.jfinal.app.search.index.IndexController.main(IndexController.java:39)
Caused by: java.security.InvalidKeyException: Illegal key size
	at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1039)
	at javax.crypto.Cipher.implInit(Cipher.java:805)
	at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
	at javax.crypto.Cipher.init(Cipher.java:1396)
	at javax.crypto.Cipher.init(Cipher.java:1327)
	at com.jfinal.kit.AesKit.encrypt(AesKit.java:57)
	... 2 more


评论区

红星

2020-10-17 11:07

报错很明显了,aes key 不能随便填 ,要满足长度,注释有说明

JFinal

2020-10-17 15:09

@红星 要往 jdk 中的 java-home/lib/security 目录中放入 local_policy.jar 以及 US_export_policy.jar 文件

你试一试,然后再来反馈一下

JFinal

2020-10-17 15:10

local_policy.jar 以及 US_export_policy.jar 这两个文档,从 JDK 1.8 开始就已经在其自身提供了,只是放置的位置不在 java-home/lib/security, 你将其复制到这个目录下面