新年10个Flag实现中~
访问量
1.4M
文章数
144
运行天
972
一、发现现象在用Java编写一个项目时,使用了AES作为数据库某些字段的加密方式,在Windows上正常运行,在Linux上调用AWS加密,抛出异常:Noinstalledprovidersupportsthiskey:javax.crypto.spec.SecretKeySpec二、问题根源Java的政策文件限制了密钥长度。JCE(JavaCryptographyExtension)是Java的加密扩展包,由于美国对某些国家有进出口限制,因此低版本Java默认限制了密钥长度,比如AES加密只能使用16位AES-128,超过16位就会报这个错。JDK8文档描述:UnlimitedStrengthJavaCryptographyExtensionDuetoimportcontrolrestri
1