仓酷云

标题: JAVA网站制作之java版的MD5 [打印本页]

作者: 活着的死人    时间: 2015-1-18 11:08
标题: JAVA网站制作之java版的MD5
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。publicclassMD5
{
/*
*AJavaimplementationoftheRSADataSecurity,Inc.MD5Message
*DigestAlgorithm,asdefinedinRFC1321.
*BasedontheJavaScriptimplementationofPaulJohnston
*Copyright(C)PaulJohnston1999-2000.
*Seehttp://pajhome.org.uk/site/legal.htmlfordetails.
*JavaVersionbyThomasWeber(OrangeInteractiveGmbH)
*/

/*
*Converta32-bitnumbertoahexstringwithls-bytefirst
*/
Stringhex_chr="0123456789abcdef";
privateStringrhex(intnum)
{
Stringstr="";
for(intj=0;j<=3;j++)
str=str+hex_chr.charAt((num>>(j*8+4))&0x0F)+hex_chr.charAt((num>>(j*8))&0x0F);
returnstr;
}

/*
*Convertastringtoasequenceof16-wordblocks,storedasanarray.
*Appendpaddingbitsandthelength,asdescribedintheMD5standard.
*/
privateint[]str2blks_MD5(Stringstr)
{
intnblk=((str.length()+8)>>6)+1;
int[]blks=newint[nblk*16];
inti=0;
for(i=0;i<nblk*16;i++){
blks[i]=0;
}
for(i=0;i<str.length();i++){
blks[i>>2]|=str.charAt(i)<<((i%4)*8);
}
blks[i>>2]|=0x80<<((i%4)*8);
blks[nblk*16-2]=str.length()*8;

returnblks;
}

/*
*Addintegers,wrappingat2^32
*/
privateintadd(intx,inty)
{
return((x&0x7FFFFFFF)+(y&0x7FFFFFFF))^(x&0x80000000)^(y&0x80000000);
}

/*
*Bitwiserotatea32-bitnumbertotheleft
*/
privateintrol(intnum,intcnt)
{
return(num<<cnt)|(num>>>(32-cnt));
}

/*
*Thesefunctionsimplementthebasicoperationforeachroundofthe
*algorithm.
*/
privateintcmn(intq,inta,intb,intx,ints,intt)
{
returnadd(rol(add(add(a,q),add(x,t)),s),b);
}
privateintff(inta,intb,intc,intd,intx,ints,intt)
{
returncmn((b&c)|((~b)&d),a,b,x,s,t);
}
privateintgg(inta,intb,intc,intd,intx,ints,intt)
{
returncmn((b&d)|(c&(~d)),a,b,x,s,t);
}
privateinthh(inta,intb,intc,intd,intx,ints,intt)
{
returncmn(b^c^d,a,b,x,s,t);
}
privateintii(inta,intb,intc,intd,intx,ints,intt)
{
returncmn(c^(b|(~d)),a,b,x,s,t);
}

/*
*TakeastringandreturnthehexrepresentationofitsMD5.
*/
publicStringcalcMD5(Stringstr)
{
int[]x=str2blks_MD5(str);
inta=0x67452301;
intb=0xEFCDAB89;
intc=0x98BADCFE;
intd=0x10325476;

for(inti=0;i<x.length;i+=16)
{
intolda=a;
intoldb=b;
intoldc=c;
intoldd=d;

a=ff(a,b,c,d,x[i+0],7,0xD76AA478);
d=ff(d,a,b,c,x[i+1],12,0xE8C7B756);
c=ff(c,d,a,b,x[i+2],17,0x242070DB);
b=ff(b,c,d,a,x[i+3],22,0xC1BDCEEE);
a=ff(a,b,c,d,x[i+4],7,0xF57C0FAF);
d=ff(d,a,b,c,x[i+5],12,0x4787C62A);
c=ff(c,d,a,b,x[i+6],17,0xA8304613);
b=ff(b,c,d,a,x[i+7],22,0xFD469501);
a=ff(a,b,c,d,x[i+8],7,0x698098D8);
d=ff(d,a,b,c,x[i+9],12,0x8B44F7AF);
c=ff(c,d,a,b,x[i+10],17,0xFFFF5BB1);
b=ff(b,c,d,a,x[i+11],22,0x895CD7BE);
a=ff(a,b,c,d,x[i+12],7,0x6B901122);
d=ff(d,a,b,c,x[i+13],12,0xFD987193);
c=ff(c,d,a,b,x[i+14],17,0xA679438E);
b=ff(b,c,d,a,x[i+15],22,0x49B40821);

a=gg(a,b,c,d,x[i+1],5,0xF61E2562);
d=gg(d,a,b,c,x[i+6],9,0xC040B340);
c=gg(c,d,a,b,x[i+11],14,0x265E5A51);
b=gg(b,c,d,a,x[i+0],20,0xE9B6C7AA);
a=gg(a,b,c,d,x[i+5],5,0xD62F105D);
d=gg(d,a,b,c,x[i+10],9,0x02441453);
c=gg(c,d,a,b,x[i+15],14,0xD8A1E681);
b=gg(b,c,d,a,x[i+4],20,0xE7D3FBC8);
a=gg(a,b,c,d,x[i+9],5,0x21E1CDE6);
d=gg(d,a,b,c,x[i+14],9,0xC33707D6);
c=gg(c,d,a,b,x[i+3],14,0xF4D50D87);
b=gg(b,c,d,a,x[i+8],20,0x455A14ED);
a=gg(a,b,c,d,x[i+13],5,0xA9E3E905);
d=gg(d,a,b,c,x[i+2],9,0xFCEFA3F8);
c=gg(c,d,a,b,x[i+7],14,0x676F02D9);
b=gg(b,c,d,a,x[i+12],20,0x8D2A4C8A);

a=hh(a,b,c,d,x[i+5],4,0xFFFA3942);
d=hh(d,a,b,c,x[i+8],11,0x8771F681);
c=hh(c,d,a,b,x[i+11],16,0x6D9D6122);
b=hh(b,c,d,a,x[i+14],23,0xFDE5380C);
a=hh(a,b,c,d,x[i+1],4,0xA4BEEA44);
d=hh(d,a,b,c,x[i+4],11,0x4BDECFA9);
c=hh(c,d,a,b,x[i+7],16,0xF6BB4B60);
b=hh(b,c,d,a,x[i+10],23,0xBEBFBC70);
a=hh(a,b,c,d,x[i+13],4,0x289B7EC6);
d=hh(d,a,b,c,x[i+0],11,0xEAA127FA);
c=hh(c,d,a,b,x[i+3],16,0xD4EF3085);
b=hh(b,c,d,a,x[i+6],23,0x04881D05);
a=hh(a,b,c,d,x[i+9],4,0xD9D4D039);
d=hh(d,a,b,c,x[i+12],11,0xE6DB99E5);
c=hh(c,d,a,b,x[i+15],16,0x1FA27CF8);
b=hh(b,c,d,a,x[i+2],23,0xC4AC5665);

a=ii(a,b,c,d,x[i+0],6,0xF4292244);
d=ii(d,a,b,c,x[i+7],10,0x432AFF97);
c=ii(c,d,a,b,x[i+14],15,0xAB9423A7);
b=ii(b,c,d,a,x[i+5],21,0xFC93A039);
a=ii(a,b,c,d,x[i+12],6,0x655B59C3);
d=ii(d,a,b,c,x[i+3],10,0x8F0CCC92);
c=ii(c,d,a,b,x[i+10],15,0xFFEFF47D);
b=ii(b,c,d,a,x[i+1],21,0x85845DD1);
a=ii(a,b,c,d,x[i+8],6,0x6FA87E4F);
d=ii(d,a,b,c,x[i+15],10,0xFE2CE6E0);
c=ii(c,d,a,b,x[i+6],15,0xA3014314);
b=ii(b,c,d,a,x[i+13],21,0x4E0811A1);
a=ii(a,b,c,d,x[i+4],6,0xF7537E82);
d=ii(d,a,b,c,x[i+11],10,0xBD3AF235);
c=ii(c,d,a,b,x[i+2],15,0x2AD7D2BB);
b=ii(b,c,d,a,x[i+9],21,0xEB86D391);

a=add(a,olda);
b=add(b,oldb);
c=add(c,oldc);
d=add(d,oldd);
}
returnrhex(a)+rhex(b)+rhex(c)+rhex(d);
}

}


首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。
作者: 山那边是海    时间: 2015-1-20 14:53
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 若相依    时间: 2015-1-29 11:15
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 活着的死人    时间: 2015-2-6 00:29
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: admin    时间: 2015-2-14 16:11
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 变相怪杰    时间: 2015-3-4 07:57
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 小女巫    时间: 2015-3-11 17:59
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 飘飘悠悠    时间: 2015-3-19 05:37
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 再见西城    时间: 2015-3-27 08:17
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2