当前位置:编程学习 > JAVA >>

java加密解密研究2、Bouncy Castle和Commons Codec加密组件

在java的加密解密的API中,几乎各种常用的加密算法都能找到对应的实现,但还是难免会有遗憾:受出口限制,密钥长度上不能满足要求;部分算法未能支持,如MD4、SHA-224等算法;API使用起来还不是很方便;一些常用的进制转换辅助工具未能提供,如Base64转换、十六进制编码转换等工具。

所以我们可以使用别的开源组织的项目来代替,例如Bouncy Castle(http://www/bouncycastle.org/)提供了一系列算法支持实现,并可以跻身于JCE框架之下,以提供者的方式纳入其中。还有Commons Codec(http://commons.apache.org/codec/)是国际开源组织Apache旗下的一款开源软件。

 

 

加密组件Bouncy Castle


一、获得加密组件

可以通过Bouncy Castle提供的下载地址:http://www.bouncycastle.org/latest_releases.html,下载最新的加密组件包,主要是bcprov-jdk16-143.jar和bcprov-ext-jdk16-143.jar两个文件,如果你还需要其API的话,还可以下载bcprov-jdk16-143.zip文件。

 

 

 


二、应用

对于Bouncy Castle提供的扩充算法支持,我们有两种方案可选:

1)、配置方式。通过配置JRE环境,使其作为提供者(Provider)提供相应的算法支持,在代码实现层面只需要指定要扩展的算法名称。


2)、调用方式、在调用Java API初始化相应的密钥工厂、密钥生成器等引擎类之前,通过代码将Bouncy Castle提供者引入,获得扩展算法支持。

 

 

①、配置方式

1、打开%JDK_HOME%\jre\lib\security\java.security文件,加入Bouncy Castle组件的支持,添加下面这一句:

security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider


2、导入bcprov-ext-jdk16-143.jar包

将我们之前下载的bcprov-ext-jdk16-143.jar放到%JDK_HOME%\jre\lib\ext目录下。

3、对%JRE_HOME%目录的相应配置与上述%JDK_HOME%目录配置相类似。

 


②、调用方式

将我们之前下载的bcprov-jdk16-143.jar导入工程即可

 

 

这两种方式各有优点,不过,一般采用第二种方式更加方便。

 

 

 

辅助工具Commons Codec

Commons Codec是Apache旗下的一款开软件,主要用于编码格式的转换,如Base64、二进制、十六进制、字符集和Url编码的转换。甚至,Commons Codec还提供了语音编码的转换。除此之外,Commons Codec还对Java原生的消息摘要算法做了良好的封装,提供了方法的易用性。


一、获得辅助工具

直接登录Commons Codec官网(http://commons.apache.org/codec/),下载最新的组件包(http://commons.apache.org/codec/download_codec.cgi)。组件包分为两种压缩格式tar.gz和.zip。这里我们选择下载.zip格式的组件包

 \

 

 


二、应用

将下载的commons-codec-1.6-bin.zip解压,将解压开的文件夹里面的commons-codec-1.6.jar包导入工程即可。

 

 

摘自 LonelyRoamer的专栏

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,