一场由jdk8小版本引起的血案
在公司实现一个需求,其中需要实现AES加密敏感数据,开发ok,测试ok,流程全部跑通,一切ok,测试小姐姐还在抱怨没有bug可提完不成指标(哈哈,这tm还有指标)。 1 Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size or default parameters 2 at com.example.demo.AESUtil.encryptService(AESUtil.java:96) 3 at com.example.demo.AESUtil.encrypt(AESUtil.java:70) 4 at com.example.demo.DataEncUtil.encrypt(DataEncUtil.java:23) 5 at com.example.demo.DemoApplication.main(DemoApplication.java:9) 6 ... 8 more 7 Caused by: java.security.InvalidKeyException: Illegal key size or default parameters 8 at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1026) 9 at javax.crypto.Cipher.init(Cipher.java:1245) 10 at javax.crypto.Cipher.init(Cipher.java:1186) 11 at com.example.demo.AESUtil.encryptService(AESUtil.java:92) 12 ... 11 more 卧槽,什么情况,紧急回退后再次review代码,没问题啊,主分支丢到测试环境还是那么完美。。。
另外,在这篇文章中也得知jdk在.java 8 161以上已经不再限制密钥长度。回头看到测试机的版本在161以上,线上则是111,所以也就证实了这一分析。https://blog.csdn.net/tangtao_xp/article/details/84944049 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |