关的Java库.JCE包含了Sun的安全供应者SunJCE.为了在默认供应者
列表中静态添加SunJCE,需要编辑以下安全属性文件:*
\jre\lib\security\java.sacurity(Win32);
*/ire/lib/security/java,se
curity(UNIX).
Payload,封装安全载荷)要求强制实现的加
密算法就是DES.DES算法的人口参数有3个:Key,Data,Mod—e.其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式.有两种:加密或解密.DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法.同时,通过定期在通信网络的接收方和发送方同时改用新的Key,便能更进一步提高数据的保密性,这正是现在网络中使用DES算法的的流行做法.
2
例如,在基于Windows计算机的C:\jdk文件夹下面安装了JDK,那么需要编辑如下文件:C:\jdk~re\lib\seeurit5r\java.security并在其中添加以下代码以完成SunJCE的静态装载:
security.provider.n—com.sun.crypto.
provider.SunJCE
Java环境下的实现Java是Sun公司开发的一种面向对象的编程
例如,名为"SUN"的安全供应者在sun.securi—ty.provider包中名为DES的类中实现了加密算法.其提供者的子类通过如下方法将DES类加进
去:
put
语言,并且由于它的平台无关性被大量应用于In—ternet的开发.在Java中实现数据的加密/解密,是使用其内置的JCE(Java加密扩展)来实现的.JCE最初是在在Java经成为Java
SDKSDK
L"Signature.DES",5
sun-security.
1.1中提供,现在已
provider.DES")
1.4的核心组成部分.JCE基本
*动态安装在实际应用中,更多的时候是在需要时才动态安装JCE的.为了在运行时动态装载供应者,首先要保证在JVM中可以提供JCE,然后使用下面的代码来完成JCE的动态安装,以便使用Java安全供应者;
importjava.security.Security
i
上是一组提供加密框架的实现,密钥生成以及消息认证代码(MAC)算法的Java包.在Java环境中使用JCE中实现数据传输过程中的加密/解密需要以下3个步骤:安装并且正确配置Java安全供应者(如SunJCE),创建密钥/密码,对数据进行加密/解密.2.1安装并且正确配置Java安全供应者
JDK
publicclassDynamicProvider{puhiiestaticvoid
main(String[]args){
1.1引人了安全供应者(简称为"供应者")
Security.addProvider(neweom.sun.
的概念.它是一个(或一组)包,用于提供JDK安全API的密码子集的具体实现.要使用密码功能的程序,可以只请求~个实现
erypto.provider.SunJCE());
}
万方数据
·72·
天津师范大学学报(自然科学版)
2.2创建密钥安装完JCE中的Java安全供应者之后,下一步
deseipher.init(Cipher.DECRYPTdeskey);
MODE,
就是要使用JCE的API来产生相应加密算法的密
钥/密码.JCEAPI由很多类和接口组成,它们具有
然后同样使用doFinal方法进行解密:byte[]desoriginal=descipher.doFinal(desre
suit);
若干种算法和安全特性.要在Java中使用对称算法数据加密标准DES
(DataEncryption
现在desoriglnal应该和desdata.完全相同.3程序实现流程下面的程序给出完整的数据加密的过程:
程序初始化
Standard)来完成密钥/密码的创
建的任务.首先要通过调用KeyGenerator类的静态方法getInstance获得KeyGenerator的一个实例,并同时在参数中指明使用DES算法:
KeyGeneratorgetInstance("DES"):deskg5KeyGeneratot.
(导人相关Jav噗库)
安装,配置SunICE
获得了KeyGenerator之后就可以调用gener—ateKey方法得到密钥:
Keydeskey=deskg.generateKeyO;调用Cipher类的静态方沽
然后通过凋用Cipher类的静态方法get]nstance,采用和生成密钥相同的方式生成一个密码(该方法的参数同KeyGenerator完全一样):
Cipher("DES");descipher—Cipher.getInstanee
壁!!!塑!堡生堕二尘童盟
t
加密数据{圈1数据加密的过程
上面已经讨论了如何以静态和动态方式安装JCE,以及采用对称加密算法DES对简单消息的加密和解密具体实现,并给出程序实现的流程图.在实际应用中