JCE cannot authenticate the provider BC

文章讲述了在项目中使用AES加密遇到BC库问题,由于JCE默认策略文件不支持,作者分享了解决方案,包括更新策略文件、手动安装BouncyCastleJCE提供程序,以及针对不同JDK版本的适配措施。
摘要由CSDN通过智能技术生成

前言:

公司项目有用AES加密的,报错原因是BC(Bouncy Castle)提供的加密服务时,JCE(Java Cryptography Extension)无法进行验证。这通常是由于 JCE 的默认策略文件不支持所需的加密算法,导致 BC 无法被正确验证。

尝试方法:

1、更新策略文件
2、手动安装 Bouncy Castle 提供的 JCE 提供程序
3、使用 Maven 或 Gradle 等构建工具引入 Bouncy Castle 依赖

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk15on</artifactId>
    <version>1.68</version> <!-- 替换为你需要的版本号 -->
</dependency>

4、检查 JDK 版本兼容性
以上方法我都试过,可能方式不对,有用的只有方法2,其他的不做陈述。

详细操作:

步骤一:检查jdk是否用的openjdk8,如果是更换成oracle的jdk8(我尝试了openjdk发现不可以绕过),并编辑jre\lib\security\java.security,添加如下行security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider
在这里插入图片描述
在这里插入图片描述

步骤二:去maven官网,手动下载一个jar,自行选择适合你jdk版本的,我下的是下图的“https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk18on/1.77”在这里插入图片描述
在这里插入图片描述
步骤三:复制bc*.jar到/youJDK/jre/lib/ext,重启你的jar服务即可。
在这里插入图片描述
总结:虽然我用了oracleJDK解决了问题,但我对openJDK还是充满信心,开源万岁!

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值