1、简述
BouncyCastle(轻量级密码术包)是一种用于 Java 平台的开放源码的轻量级密码术包;Bouncycstle 包含了大量的密码算法,其支持椭圆曲线密码算法,并提供JCE 1.2.1的实现。
2、为什么要使用BouncyCastle?
我们知道,Java标准库提供了一系列常用的哈希算法。但如果我们要用的某种算法,Java标准库没有提供怎么办?
方法一:自己写一个,难度很大;
方法二:找一个现成的第三方库,直接使用。
BouncyCastle就是一个提供了很多哈希算法和加密算法的第三方库。它提供了Java标准库没有的一些算法,例如,RipeMD160哈希算法。
3、如何使用BouncyCastle?
因为 Bouncy Castle 被设计成轻量级的,所以从 J2SE 1.4 到 J2ME(包括 MIDP)平台,它都可以运行。它是在 MIDP 上运行的唯一完整的密码术包。接下来,我们来看一下如何使用BouncyCastle这个第三方提供的算法。
3.1 maven工程下引入依赖包方式
- pom.xml文件中引入bouncycastle的jar包依赖,把BouncyCastle提供的jar包放到classpath中。这个jar包就是
bcprov-jdk15on-xxx.jar
,可以从官方网站下载。
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.59</version>
</dependency>
- Java标准库的
java.security
包提供了一种标准机制,允许第三方提供商无缝接入。我们要使用BouncyCastle提供的RipeMD160算法,需要先把BouncyCastle注册一下:
@Test
public void case1(){
// 注册BouncyCastle:
Security.addPr