用了一个加密算法 反正就是给个key+secret 加密成另外一段文字 不关心加密过程,
前几天都能加密成功,今天运行加密程序直接就报错了。。Illegal key size or default parameters
Exception in thread "main" java.security.InvalidKeyException: Illegal key size or default parameters
at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1026)
at javax.crypto.Cipher.implInit(Cipher.java:801)
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
at javax.crypto.Cipher.init(Cipher.java:1249)
at javax.crypto.Cipher.init(Cipher.java:1186)
at com.tencent.s2.util.EncryptAESUtil.getCipher(EncryptAESUtil.java:32)
at com.tencent.s2.util.EncryptAESUtil.encrypt(EncryptAESUtil.java:17)
at com.tencent.s2.util.EncryptAESUtil.main(EncryptAESUtil.java:52)
不多说 直接百度。
报错 Illegal key size or default parameters - 码农教程
大多数都和这个说的差不多,反正就是要替换jdk 下的两个文件。
但是这里我有一个疑问了。
1.我之前能够获取到加密后的字符串,现在获取不到
2.这个jar我部署到服务器了,目前服务还是能正常加密。
问题1 为啥我之前可以现在不行?
感觉最近也没动过这个类,看了git也是原样。那么问题出在哪呢?灵机一动,因为idea有时候会自己有个默认的jdk版本,是不是我换到其他工程的时候改过这些设置呢?
目前是java8报错!!!
但是当我切换到java11的时候就好了
问题2 为什么服务器上的可以呢?难道也是java11
再看看本地的jdk8
两者一对比就知道问题出在哪了吧。 服务器上的jdk版本是特供的呀。。。
当然上面文章的解决办法也是可以的替换本地的和服务器的这个policy.jar。
说到底还是吃了懒得亏。一直用jdk8.现在jdk13都出来一年多了。。。实在是学不动了