基于java的加密算法的应用

基于java的加密算法的应用

ID:23908108

大小:55.00 KB

页数:7页

时间:2018-11-11

基于java的加密算法的应用_第1页
基于java的加密算法的应用_第2页
基于java的加密算法的应用_第3页
基于java的加密算法的应用_第4页
基于java的加密算法的应用_第5页
资源描述:

《基于java的加密算法的应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于Java的加密算法的应用随着计算机X络技术的迅猛发展和X络系统的深入应用,信息X络的社会化和国际化使人类社会的生活方式发生重大变化,X络已经成为今天的各项社会生活赖以存在的基础设施,电子商务成为随之而形成的商务活动的新模式,而Java在X络安全方面有全套关于加密、数字签名的类,以确保文件在X络传输安全。本文介绍了Java中利用Diffie-Helman、MD5等加密算法实现对文件或消息的加密和解密过程。关键词:Java;加密;MD5;Diffie-Helman1.引言  随着计算机X络技术的迅猛发展和X络系统的深入应用,信息X络的社会化和国

2、际化使人类社会的生活方式发生重大变化,X络已经成为今天的各项社会生活赖以存在的基础设施,电子商务成为随之而形成的商务活动的新模式。但是,X络社会越发达,它遭受攻击的危险性也越大。如果想保证商务活动安全稳定的进行,保证X络安全是最关键的问题。X络安全不仅从一般性的防卫变成了一种非常普通的防范,而且还从一种专门的领域变得无处不在。  X络安全用于保证信息在处理、存储或传递过程中的可靠性和权成性。早期这项安全技术大部分是基于军事上的需求,到了90年代,Inter和电子商务得到广泛应用,尤其是Java技术的发展才使得X络安全在商业上广受重视并成为主流技

3、术[1]。2.Java加密体系结构2.1Java加密体系结构的设计原理  Java加密体系结构(JCA)是根据以下目标设计的:  (1)实现的独立性和互操作性;  (2)算法的独立性和可扩展性。  实现的独立性和算法独立性是互补的。其目的是让API用户能用密码学的概念(如数字签名和报文摘要),但又不必关心这些概念的实现甚至这些概念所用算法的实现。当不可能完全实现算法独立性时,JCA将为开发人员提供标准的特定算法API。当实现方法的独立性不可能实现时,JCA将让开发人员指明所要求的特定实现方法。  算法独立性是通过定义密码“引擎”(服务)的类型以

4、及定义提供这些密码引擎功能的类来实现的。提供加密算法的应用程序接口的类称为engine(引擎)类,例如MessageDigest类、Signature类和KeyFactory类。  实现的独立性是通过使用基于“提供者”的体系结构而实现的。密码服务提供者(简称“提供者”)指的是用于实现一种或多种密码服务的一个包或一组包,如数字签名算法、报文摘要算法及密钥交换服务。应用程序可以只是简单地请求某类对象(如签名对象)实现某种服务(如DSA数字签名算法),并从任一安装好的提供者上获取实现方法。反之,必要时程序可从某个特定的提供者请求实现方法。  实现的互

5、操作性指的是各种实现方法可在一起工作,使用彼此的密钥或校验彼此的签名。这意味着对于相同的算法,由一个提供者生成的密钥可被另一个提供者使用,而一个提供者生成的签名也可由另一个提供者来校验。算法的可扩展性指的是可以很容易地添加那些能适应engine类的新算法[2]。2.2Java加密体系结构  密码服务总是与某个特定的算法或类型相关联,它或者提供密码运算(如数字签名或报文摘要中的运算),生成或提供密码运算所需要的密码信息(密钥或参数),或者生成安全封装的密钥(这些密钥可用于密码运算中)的数据对象。例如,Signature和KeyFactory类就是

6、两个引擎类。Signature类提供对数字签名算法功能的访问。DSAKeyFactory以一种可供DSASignature对象的initSign或initVerify方法使用的格式提供DSA私钥或公钥(从其编码或透明规范中)。  Java加密体系结构包含了JDK1.2安全包中与密码有关的类,包括引擎类。API用户可通过请求和利用引擎类的实例来执行相应的运算。  一个引擎类提供某类密码服务功能的接口(与特定的密码算法无关)。它定义“应用程序接口”(API)方法,以使应用程序能够访问所提供的某类密码服务。实际的实现方法(由一个或多个提供者提供)即是

7、那些指定算法的实现。例如,Signature引擎类将提供对数字签名算法功能的访问。SignatureSpi子类中(参见下一段落)所提供的实际实现方法将是某个指定签名算法(如带有DSA的SHA1、带有RSA的SHA1或带有RSA的MD5)的实现[3]。3.Java实现加密验证过程3.1对消息或文件加密  消息摘要只能检查消息的完整性,但是单向的,对明文消息并不能加密,要加密明文消息的话,就要使用其他的算法,要确保机密性,我们需要使用私有钥密码来交换私有消息。使用私钥加密的话,首先需要一个密钥,可用javax.crypto.KeyGenerator

8、产生一个密钥(java.security.Key),然后传递给一个加密工具(javax.crypto.Cipher),该工具再使用相应的算法来进行加密

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。