Skip to content

Linux 环境下 java17 使用 Bouncy Castle 做加解密会出现 JCE cannot authenticate the provider BC 异常 #2631

Open
@FULaBUla

Description

@FULaBUla

版本情况

JDK版本: oracle java 17
hutool版本: 5.8.7(请确保最新尝试是否还有问题)

问题描述(包括截图)

Linux 环境下 java17 使用 Bouncy Castle 做加解密会出现 JCE cannot authenticate the provider BC 。
spring-projects/spring-boot#28837 中有讨论过这个问题,在 2.7.2 及之前版本的springboot 有修复过这个问题,通过使用

bootJar {
    requiresUnpack '**/bcprov-jdk15on-*.jar'
}

可以解决问题,但是后来发现又会导致别的问题出现,所有修改被回归了。

在新的 2.7.3 和 2.74 版本依旧无法支持使用上面那个修改调用加解密库。

在议题中有另一个方式可以解决问题就是在调用 Bouncy Castle 前执行 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

希望可以将这句话加到 hutool 调用 Bouncy Castle 的语句前,这样每次调用工具类的时候不需要在自己手动加了。

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions