一、BouncyCastle简介
BouncyCastle是一款开源的密码包,其中包含了大量的密码算法,使用BouncyCastle的目的就是为了扩充算法支持html
下载地址最新加密组件包 http://www.bouncycastle.org/latest_releases.htmljava
下载下来的加密组件包有如下两个:算法
bcprov-ext-jdk15on-162.jar #用于配置方式使用ide
bcprov-jdk15on-162.jar #用于调用方式使用加密
二、BouncyCastle的使用方式
2.一、配置方式
经过配置JRE环境,使其做为提供者提供相应的算法支持,在代码层面只须要指定要扩展的算法名称spa
(1) 修改 D:\InstallSoftHere\Java\jdk1.8.0_121\jre\lib\security目录下的java.security文件
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
(2) 将文件导入D:\InstallSoftHere\Java\jdk1.8.0_121\jre\lib\ext目录下
(3) 刚才上面修改了安装目录下的jdk文件夹里的内容,接下来对与jdk同目录下的jre文件夹进行相同的修改与导入
2.二、调用方式
(1) 将bcprov-jdk15on-162.jar文件导入相关工程
(2) 在须要使用加密的代码中导入如下两个类
import java.security.Security; import org.bouncycastle.jce.provider.BouncyCastleProvider;
(3) 在初始化密钥工厂、密钥生成器等引擎前调用以下代码:
//加入BouncyCastleProvider的支持 Security.add.addProvider(new BouncyCastleProviderrr()); ###############或者使用如下方式############### MessageDigest md = MessageDigest.getInstant("MD4","BC"); //每一个提供者都有简称,Bouncy Castle提供者的简称为BC