然后分析异常的具体位置:
找到具体抛异常的位置
然后往上翻可以看到这个类具体是什么作用
BouncyCastle类是一个加密的第三方类,jdk本身是有一些加密的方法的,如果需要额外的一些加密方法的话需要用到BouncyCastle类。但我不记得加过这个类啊,我们先看看到底有没有这个类。
搜了一下发现有,我们在看看这是在哪里加进来的。
通过全局搜索没有发现,说明这个类不是我们自己主动通过maven加进来的,是在加别的类的时候,依赖加进来的。
选定模块以后,点击上面的那个图标,然后通过ctrl+f快速搜索这个jar包
这里我们这可以知道,是在引入支付宝支付的时候引入了bcprov这个jar包,然后初始化的时候就使用了这个jar包,但是这个版本的jar包签名太旧了(jdk8的时候没有问题),所有报了个签名未通过的错。
<!-- 这是maven目前最新的版本 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
<!-- 网上搜到有人用这个,上面没用的话试试这个 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.64</version>
</dependency>
ps:这个方法没有尝试过,是后面补充的,可以试试。
2.使用openjdk。open jdk是不会去验签的,所以直接把oracle jdk改成open jdk。
3.直接强制关闭Bouncy Castle
关闭示例:
import cn.hutool.crypto.SecureUtil;
public class Example {
public static void main(String[] args) {
// Disable Bouncy Castle
SecureUtil.disableBouncyCastle();
// Your code here
// ...
}
}
版权声明:本文为CSDN博主「一个超赞的名字」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36963762/article/details/122338213