java异常——no such provider:BC

背景

工作中和其他第三方进行通讯的时候,通常需要对通讯中的重要信息进行加密,或者使用证书来保证安全,在使用bcprov-jdk16-146包提供的加解密方法时,报了
Java.security.NoSuchProviderException: no such provider: BC
这个错误,从错误来看是java security中没有找到BC的安全模式。

解决方法

有两种解决方法:
1.直接修改jre环境下的security配置文件
找到JAVA_HOME/jre/lib/security/java.security文件,在里面可以看到有几行是以“security.provider.”开头的,在它的最后序号之上加一行,如我的最后的序号是10,加入以下这行:
security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider
这样就可以了(前提是工程自己将bcprov-jdk16-146导入了依赖包使用)
2.在代码中修改
可以在使用BC方法前,在代码中手动将BC方法添加进环境信息内,例如:

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

直接使用这行代码可以临时将BC方法添加进环境信息,使线程接下来的使用不会报错,比较适用于不倾向改动系统环境的情况。

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值