JCE cannot authenticate the provider BC

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/study4034/article/details/79632495

JCE cannot authenticate the provider BC 这个问题,很多人遇到,如下


本人本着求真溯源的态度,先后通道搜索国内外资料和官网文档的方式,顺道撸了一点JCE。最终得到问题的原因,知道了明确的原因,自然各位道友有无数种方法解决。

    原因:JDK对类似bouncycastle的bcprov-jdk15on-159.jar包是有安全签名认证的,当我们如果进行生成jar的时候,如果选择类似eclipse的export runnable jar file 功能,如下红色勾选的选项,eclipse会解压缩依赖的包后一起打包成一个jar文件



以上生成jar的方式,会解压bcprov-jdk15on-159.jar,这类安全加密算法类似jar一旦有更改,包括解压,签名就会失效,不能通道jdk的验证,就会出现以上错误。

  针对以上的打包方式解决方法很简单,就是如下红色勾选的方式,将jar完成的打包进一个文件中,这样就没有问题了


生成的文件是这样的:


记得移动jar的时候,把**_lib文件带上放在同一个文件夹下面。

网上的兄弟很多各种改jdk安全配置文件,那样不好。。。

附送动态加入密码包见截图.就不需要添加类似:security.provider.9=org.bouncycastle.jce.provider.BouncyCastleProvider如下



1、动态加入

Security.addProvider(org.bouncycastle.jce.provider.BouncyCastleProvider)

2、注意打包方式

3、OK

猜你喜欢

转载自blog.csdn.net/study4034/article/details/79632495