No such provider: BC : 问题解决

本文介绍了解决Java安全问题的一种方法,通过修改Java安全配置文件并集成BouncyCastle安全提供者,以增强Java应用程序的安全性和加密功能。文章提供了具体的配置步骤,包括在Maven项目中引入依赖及在代码中动态注册BouncyCastle。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上有一部分解决的方法是

1、修改以下两个文件

%JDK_Home%\jre\lib\security\java.security

%JRE_Home%\jre\lib\security\java.security

追加 最后一行

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

2、将bcprov-ext-jdk16-143.jar 放到

     %JDK_Home%\jre\lib\ext

     %JRE_Home%\jre\lib\ext

这个方法可行,但方法欠佳

我觉得下面的方法更具可行性:

1:maven(版本很关键,不说了,说多了都是泪😢)

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-ext-jdk15on</artifactId>
    <version>1.64</version>
</dependency>

2、在加密类中加入静态块。

 static{
  try{
   Security.addProvider(new BouncyCastleProvider());
  }catch(Exception e){
   e.printStackTrace();
  }
 }

才疏学浅 ,请多指教 !

参考:https://blog.csdn.net/yj1499945/article/details/79759330

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值