第27卷第1期2009年1月
沈阳师范大学学报(自然科学版)
JournalofS矗enyangNormalUniversity(NaturalScience)
V01.".No.1
Jan.2009
文章编号:1673—5862(2009)01—0075—03
基于JAVA技术的MD5加密算法的
设计与实现
张浩华,齐维毅,赵子夫,李瑶,潘庆超
(沈阳师范大学物理科学与技术,辽宁沈阳110034)
摘
要:详细描述了在数字签名,电子商务,信息加密领域中广泛应用的咖D5加密算法,并
针对其高效,跨平台使用,提出利用
JSP与
JavaBean相结合的技术方法实现MD5加密算法.该方法采用Java语言实现MD5算法,并利用JavaBean组件进行封装,通过JSP技术进行相应页面的动态展现,既简化JSP网页结构体现了Java体系的技术优势,又保证了应用
系统的安全性,跨平台性和提高系统的执行效率.关键词:JAVA;MD5;JavaBean;加密中图分类号:TP393.03文献标识码:A
0引
言
DigestAlgorithm
随着
网络的高速发展和服务的日趋完善,网络上流通的信息量呈几何级数增加.为了有效地保护,存储,管理和使用网上的私有信息,MD5(Message5),SHA(Secure
Hash
Algorithm)等
数据加密技术被广泛应用于网络领域…1.MD5的作用是让大容量信息在用数字签名
软件签署私人密匙前被"压缩"成一种保密的格式,其主要优点在于:单向,极难逆的字符串变换算法;原文的微小变化,得到的摘要将大相径庭[2J2.近年来,出现了若干MD5破解算法∞J,但多为概率性破解,算法只对部分信息
集合适用,其实际影响要远小于它的理论意义,因此MD5仍是当前数字签名,加密等技术领域比较安
全,有广泛应用的算法.Java技术中的JSP(Java
Server
Page)是当前最有优势和发展前景的动态网站开
发技术[4J.JavaBean是封装业务逻辑实现复用性的最佳Java组件.因此,结合两者优势来实现MD5加密算法,不仅能应用于整个Java体系的WEB开发领域,而且可广泛应用于对数据有较高安全性要求的数字签名,电子商务,数据处理等领域.具有开发周期短,一次开发多处应用,可跨平台使用,运行效率高等的绝对优势.1
MD5算法描述
MD5算法可简述为:以512位分组来处理输入字节串的信息,且每一分组又被划分为16个32位
子分组,经过了一系列的处理后,算法的输出由4个32位分组组成,将这4个32位分组级联后将生成一个128位散列值[5|.
在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448.因此,信息
的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数.填充的方法是在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充.然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度.经过这2步的处理,现在的信息字节长度=N*512+448十64=(N+1)*512,即长度恰好是512的整数倍.这样做的原因是为满足后面处理中对信息长度的要求.MD5中有4个32位被称作链接变量(ChainingVariable)的整数参数,分别为:A=0x01234567,B=0x89abedef,C=0xfedcba98,D=Ox76543210.当设置好这4个链接变量后,就开始进入算法的四轮循环
收稿日期:2008-09.25基金项目:辽宁省教育厅高等科学研究项目(2(108679).作者简介:张浩华(1977一),男,辽宁沈阳人,沈阳师范大学讲师,博士
万方数据
沈阳师范大学学报(自然科学版)
第27卷