java.lang.SecurityException: JCE cannot authenticate the provider BC

背景

在实现RSA加密相关功能时需要使用bcprov-jdk.jar包,用于处理js和java默认的RSA算法不一致问题。

方案

  • 将bcprov-jdk16-146.jar包放到C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext路径下;
  • 在C:\Program Files\Java\jdk1.8.0_171\jre\lib\security文件下的java.security文件中添加最后加粗的(1~10为原有的):

    security.provider.1=sun.security.provider.Sun
    security.provider.2=sun.security.rsa.SunRsaSign
    security.provider.3=sun.security.ec.SunEC
    security.provider.4=com.sun.net.ssl.internal.ssl.Provider
    security.provider.5=com.sun.crypto.provider.SunJCE
    security.provider.6=sun.security.jgss.SunProvider
    security.provider.7=com.sun.security.sasl.Provider
    security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
    security.provider.9=sun.security.smartcardio.SunPCSC
    security.provider.10=sun.security.mscapi.SunMSCAPI
    security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

  • 将bcprov-jdk16-146.jar包放到项目中;

  • 然后在项目中使用即可。

问题

配置完后运行项目抛出异常:

java.lang.SecurityException: JCE cannot authenticate the provider BC
...../jre/lib/ext/bcprov-jdk16-146.jar has unsigned entries 

解决

将bcprov-jdk16-146.jar包换成bcprov-jdk15-134.jar即可!(项目使用jdk1.8.0_171,eclipse)

(个人实践,仅供参考!)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值