SpringBoot打包后SDK报错cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC有没有什么解决办法?在idea是正常的,打包部署到服务器请求就报这个错误。服务器的jdk是17
1条回答 默认 最新
- 守时间的孤岛 2023-04-20 13:46关注
该回答引用chatgpt:你本地和服务器jdk版本不一样吗,建议保持一致,这样能方便及时发现问题
您在服务器上部署的 JDK 版本是 JDK 17,而出现 cn.hutool.crypto.CryptoException: SecurityException: JCE cannot authenticate the provider BC 的原因是 JDK 9+ 默认没有无限制权限策略文件(JCE Policy files)。为了解决这个问题,您可以尝试以下方法:
1.下载Java Cryptography Extension (JCE) 无限制权限策略文件,解压后将文件放到 $JAVA_HOME/jre/lib/security 目录下,覆盖原有文件。JDK 17 的 JCE 无限制权限策略文件下载地址:JCE 无限制权限策略文件下载。
在您的应用程序中手动添加 BouncyCastle 提供者,可以通过以下代码添加:
import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider; Security.addProvider(new BouncyCastleProvider());
在代码中添加 BouncyCastle 提供者后,您可以在使用 Hutool 进行加密/解密操作时,指定 BouncyCastle 算法实现。例如:
SecureUtil.bouncyCastle("AES/ECB/PKCS7Padding");
如果您的应用程序中有多处使用到加密/解密操作,建议将这些加密/解密操作统一使用 BouncyCastle 提供的算法实现,这样可以保证在不同的 JDK 版本中均可正常工作。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 python忆阻器数字识别
- ¥15 无法输出helloworld
- ¥15 高通uboot 打印ubi init err 22
- ¥20 PDF元数据中的XMP媒体管理属性
- ¥15 R语言中lasso回归报错
- ¥15 网站突然不能访问了,上午还好好的
- ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
- ¥15 semrush,SEO,内嵌网站,api
- ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
- ¥15 振荡电路,ADS仿真