运算.锤环的次数是信怠中512使信息分组的数叠.
将4个链接变量复制到另外四个变凰中:A到a,B到b,C刘e,D到d.主循环有四轮,每轮循环都很棚似.第一轮进行16次操作.每次操作对a,b,e和d中的其中3个作一次爿}线性函数运算,然后将所褥绻暴舞主第豳个变量,文本的一个予分组裙一拿常数.孬将黪褥结象自衣臻移一个不定懿数,并翔主a,b,e或d中之一.最后用该结果取代a,b,e或d中之一.每次操作中用到的四个非线性函数(每轮一个)分别为F(X,Y,z)=X&;YlNoT(X)&;Z;G(X,Y,Z)=X&;ZlY&;NOT(Z);H(X,Y,Z)=X
Y
xor
xorZ;l(x,Y,Z)=Yxor(X;NOT(Z)>,其孛翔票X,Y和Z懿对瘟位慧独立翻均键酶,那么结聚鳇
每一位也应是猿立和均匀的.F是一个逐位运算的溺数.即,如槊X,那么Y,否则Z.函数H是逐位奇偶操作符.2
jSp帮JavaBe盈n
JSP是基予Java体系的WEB开发技术,用于创建跨平台及跨服务器的动态网页九6.与CGI,ASP,
PHP等相比,它具有组件和网页设计从逻辑上分离,良好的扩展性和安全性,一次编写,铡处运行,强调虿豢矮懿缰斡等傀点【7|.JavaB£zn是一静霹重臻Java缝终,它遴遘封装受务逻辑或鸯鞠施霹象,实壤被JavaApplet/Servelet/JSP等Java
程序的调用【8].是目前功能强大及开发简单的最好的组件方式.如果将一些繁琐或者
常用的动作,撰写于Bean内,可以达到简化和优化jsP网页结构的目的.如果已有实现某静磅缆酶JavaBean.剽锲建包含这个魂筑鳃Web爽嚣灵霉要实铡纯它,霉耀
HTML袭硌将它定毯朗
可.
3
算法实现
为充分利用JSP的动态页面优势和JavaBean的组件优势,蜜现
方案采取用java实现MD5算法,并
3.1实现方案
用Java№封装,利用JsP展现的方式.既保证了"一次编写到处运行"又体现了Java2在比较密集的
诗舞孛酶蒜效率,
3.2
MD5的JavaBean
为节约篇峨,仅给出几个编写过程申需注意的关键程序段
privatevoid
md5Update(byte[】inbuf,intinputLen)‖MD5鹃主诗箕过程
{inti,index,partLen;byte[】block=newbyte[64];index=(int)(count[0])))3)&;0x3F;
if((count[0]十=(inputLen((3))((inputLen((3))count[1]十+;count[1】+=(inputLen)))29);partken--64.index;if
md5Memcpy(buffer,inbuf,index,0,partLen);md5Transform(buffer);
for(i=partLen;i+63(inputLen;i+=64){md5Memepy(block,inbuf,0,{,64);
md5Tramsform(block);}index=0;;elsei=0;md5Memcpy(buffer,inbuf,index.i,inputLen.i);}privateMD5孩心变换程痔,仅歹《爨Round1,2,3,4略{longa=state[0],b=state[1】,c=state[2],d=state[3];long[】x=newlong[16];Decode(x,block,64);
/*Roundl*/
void
md5Transform(byteblock[])‖
a=FF《a,b,c,d,x[0j,Sll,0xd76aa478L);/*1*/d=FF(d,a,b,e,x[1],S12,0xeSe7b756L);/*2*/
c=FF(c,d,a,b,x[2],¥13,Ox242070dbL);/*3*/