最近用到国密sm3算法,报错 java.lang.SecurityException: class “org.bouncycastle.crypto.digests.GeneralDigest

最近用到 国密sm3算法,报错 java.lang.SecurityException: class "org.bouncycastle.crypto.digests.GeneralDigest"'s signer information does not match signer information of other classes in the same package
    
一、原因
jar 包冲突


二、解决
*尝试方案一:
项目是maven项目,使用命令:dependency:tree -Dverbose -Dincludes=:bcprov-jdk
找出此bcprov-jdk14-136.jar包的依赖关系,如下所示:

mvn dependency:tree -Dverbose -Dincludes=:bcprov-jdk

[INFO] Verbose not supported since maven-dependency-plugin 3.0
。。。

提示不支持,继续尝试

*尝试方案二:
dependency:tree

手动查找 关键词bcprov-jdk

涉及到的jar,进行排除即可:
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk14</artifactId>
                </exclusion>
            </exclusions>

三、排查问题用到的几个点:
    org/bouncycastle/crypto/digests/SM3Digest

  <!--<dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15to18</artifactId>
            <version>1.68</version>
        </dependency>-->

        <!--<dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.60</version>
        </dependency>-->

The server license is out of date

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
引用:国密算法报错java.lang.NoClassDefFoundError: org/bouncycastle/asn1/gm/GMNamedCurves 问题原因 。 引用:java.lang.NoClassDefFoundError: javax/validation/valueextraction/ValueExtractorDeclarationException 今天部署环境遇到这个问题,查了好长时间终于解决了; 问题原因: 由于jar包hibernate-validator、...。 引用:包冲突问题,bcprov-jdk16不再更新了,请使用bcprov-jdk15on或者jdk15to18 maven依赖 <!--国密--> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15to18</artifactId> <version>1.69</version>***hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.21</version> </dependency>。 Caused by: java.lang.NoClassDefFoundError: org/bouncycastle/math/ec/ECFieldElement 错误的原因是缺少包org.bouncycastle.math.ec.ECFieldElement。 为了解决这个问题,您可以按照以下步骤进行操作: 1. 确认您的项目中是否引入了所需的jar包org.bouncycastle.math.ec.ECFieldElement。 2. 如果没有引入该jar包,请使用Maven或Gradle添加以下依赖项: <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.69</version> </dependency> 3. 如果已经添加了依赖项但仍然出现问题,请检查依赖项的版本是否正确。确保依赖项的版本与您的项目兼容。 4. 如果问题仍然存在,请尝试清除项目的缓存并重新构建项目。 5. 如果仍然无法解决问题,请考虑与相关技术支持人员或开发社区讨论,以获取更进一步的帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值