JCE cannot authenticate the provider BC

前言:

公司项目有用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还是充满信心,开源万岁!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 20:30:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 20:30:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 20:30:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 20:30:04       20 阅读

热门阅读

  1. CSS_sass模块化、scss模块化

    2024-05-01 20:30:04       9 阅读
  2. GPT每日面试题—csrf攻击的原理和解决方案

    2024-05-01 20:30:04       11 阅读
  3. yarn的安装与使用:提升前端开发效率的利器

    2024-05-01 20:30:04       8 阅读
  4. QT登录界面,(页面的切换)

    2024-05-01 20:30:04       7 阅读
  5. 利用Python实现Smithwaterman算法

    2024-05-01 20:30:04       9 阅读
  6. AI期末复习(PolyU)

    2024-05-01 20:30:04       10 阅读