欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 基于Java的加密算法的应用

基于Java的加密算法的应用

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


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

关键词:Java;加密;MD5;Diffie-Helman
1.引言
  随着计算机网络技术的迅猛发展和网络系统的深入应用,信息网络的社会化和国际化使人类社会的生活方式发生重大变化,网络已经成为今天的各项社会生活赖以存在的基础设施,电子商务成为随之而形成的商务活动的新模式。但是,网络社会越发达,它遭受攻击的危险性也越大。如果想保证商务活动安全稳定的进行,保证网络安全是最关键的问题。网络安全不仅从一般性的防卫变成了一种非常普通的防范,而且还从一种专门的领域变得无处不在。
  网络安全用于保证信息在处理、存储或传递过程中的可靠性和权成性。早期这项安全技术大部分是基于军事上的需求,到了90年代,Internet和电子商务得到广泛应用,尤其是Java技术的发展才使得网络安全在商业上广受重视并成为主流技术 [1]。
2. Java加密体系结构
2.1 Java加密体系结构的设计原理
  Java加密体系结构(JCA)是根据以下目标设计的:
  (1)实现的独立性和互操作性;
  (2)算法的独立性和可扩展性。
  实现的独立性和算法独立性是互补的。其目的是让API用户能用密码学的概念(如数字签名和报文摘要),但又不必关心这些概念的实现甚至这些概念所用算法的实现。当不可能完全实现算法独立性时,JCA将为开发人员提供标准的特定算法API。当实现方法的独立性不可能实现时,JCA将让开发人员指明所要求的特定实现方法。
  算法独立性是通过定义密码“引擎”(服务) 的类型以及定义提供这些密码引擎功能的类来实现的。提供加密算法的应用程序接口的类称为engine(引擎)类,例如MessageDigest类、Signature类和KeyFactory类。
  实现的独立性是通过使用基于 “提供者” 的体系结构而实现的。密码服务提供者(简称“提供者”)指的是用于实现一种或多种密码服务的一个包或一组包,如数字签名算法、报文摘要算法及密钥交换服务。应用程序可以只是简单地请求某类对象(如签名对象)实现某种服务(如DSA数字签名算法),并从任一安装好的提供者上获取实现方法。反之,必要时程序可从某个特定的提供者请求实现方法。
  实现的互操作性指的是各种实现方法可在一起工作, 使用彼此的密钥或校验彼此的签名。这意味着对于相同的算法,由一个提供者生成的密钥可被另一个提供者使用,而一个提供者生成的签名也可由另一个提供者来校验。算法的可扩展性指的是可以很容易地添加那些能适应engine类的新算法[2]。
2.2 Java加密体系结构
  密码服务总是与某个特定的算法或类型相关联,它或者提供密码运算(如数字签名或报文摘要中的运算),生成或提供密码运算所需要的密码信息(密钥或参数),或者生成安全封装的密钥(这些密钥可用于密码运算中)的数据对象。例如,Signature 和 KeyFactory 类就是两个引擎类。Signature 类提供对数字签名算法功能的访问。DSA KeyFactory 以一种可供 DSA Signature 对象的 initSign或initVerify 方法使用的格式提供 DSA 私钥或公钥(从其编码或透明规范中)。
  Java加密体系结构包含了JDK 1.2 安全包中与密码有关的类,包括引擎类。API用户可通过请求和利用引擎类的实例来执行相应的运算。
  一个引擎类提供某类密码服务功能的接口(与特定的密码算法无关)。它定义“应用程序接口” (API) 方法,以使应用程序能够访问所提供的某类密码服务。实际的实现方法(由一个或多个提供者提供)即是那些指定算法的实现。例如,Signature 引擎类将提供对数字签名算法功能的访问。SignatureSpi子类中(参见下一段落)所提供的实际实现方法将是某个指定签名算法(如带有 DSA 的 SHA1、带有 RSA 的 SHA1 或带有RSA 的MD5)的实现[3]。
3. Java实现加密验证过程
3.1对消息或文件加密
  消息摘要只能检查消息的完整性,但是单向的,对明文消息并不能加密,要加密明文消息的话,就要使用其他的算法,要确保机密性,我们需要使用私有钥密码来交换私有消息。使用私钥加密的话,首先需要一个密钥,可用erator产生一个密钥(),然后传递给一个加密工具(),该工具再使用相应的算法来进行加密,主要对称算法有:DES(实际密钥只用到56位),AES(支持三种密钥长度:128、192、256位),通常首先128位,其他的还有DESede等,私钥加密需要一个共享的密钥,那么如何传递密钥。在网络的传输过程中,直接传递的话很容易被侦听到,那么使用公有密钥加密。公钥加密也叫非对称加密,非对称算法使用一对密钥对,使用公钥加密的数据,只有私钥能解开(可用于加密);同时,使用私钥加密的数据,只有公钥能解开。但是速度很慢(比私钥加密慢100到1000倍),公钥的主要算法有DSA,Diffie-Helman等,jdk1.6种提供了对RSA的支持,是一个改进的地方。它们分别称为公开密钥(Public key)和秘密密钥(Private key)。因为在网络中传输私有密钥很容易被侦听,但是也必须采用私有密钥来解密,这种情况下,在本地产生密钥对,传输公有密钥给另一个用户端,同时此用户端也产生一对密钥对,比校两个公有密钥是否相同,在相同的情况下才用本地私有密钥解密[4]。
3.2利用MD5加密消息实现数字签名
  我们知道MD5就是把一个任意长度的字节串变换成一定长的大整数,而且此大整数具有不重复性和不可逆性,以保证签名的唯一性,那么就可以用MD5指定生成字符串。把消息摘要用MD5生成一串字符之后,同时把消息搞要和生成密文摘要传给用户端, 用户端又把消息摘要再进行生成一次,把两次生成的字符串是否相同完成数字签名。
4.总结
  本文有两个关于加密算法应用的类,分别是myDigest(MD5加密)、public_signtrue(非对称加密)的实现,完整的体现了加密和解密过程。不管在网络中还单机中对于加密算法的应用无处不在,以确保数 据的安全。下面代码是public_signtrue类的应用。
byte.沈阳师范大学学报. 2009(1):75-76 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/243038.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学