关于使用算法找不到类org.bouncycastle.jce.provider.BouncyCastleProvider的问题,本人尝试了网上N多方法都不行后,自己尝试解决了问题,以分享出来。没有JAVA_HOME的需要配置环境,JDK环境变量的配置
1、网上搜索的方法基本都是这种,本人没有解决问题
- 找到JAVA_HOME路径
- 将bcprov-jdk14-145.jar放入JAVA_HOME/jre/lib/ext下
- 打开JAVA_HOME/jre/lib/security下的java.security文件,在下面加上security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider
2、本人的解决方法
1、下载bcpg-jdk-1.46.jar,导入到项目的lib文件夹下,或者gradle下引用包的形式
compile 'org.bouncycastle:bcpg-jdk16:1.46'
下载路径:
bcpg-jdk所有版本:https://www.mvnjar.com/org.bouncycastle/list.html
bcpg-jad16版本:https://www.mvnjar.com/org.bouncycastle/bcpg-jdk16/jar.html
2、用于制作证书的时候,还是需要下载配置
用于制作Android App进行SSL通信时所需使用的bks格式证书。
为了生成Android用的BKS证书文件,采取如下操作:
1.下载 bcprov-ext-jdk15on-160.jar,复制到jdk_home\jre\lib\ext
2.配置bcprov,在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
3.生成android平台的证书
keytool -importcert -keystore tclientapi.bks -file api.cert -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -alias api
其中api.cert为服务器证书,tclientapi.bks是生成的Android证书。