1 / 11
文档名称:

java实现md5加密功能.doc

格式:doc   大小:51KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java实现md5加密功能.doc

上传人:drp539606 2019/4/29 文件大小:51 KB

下载得到文件列表

java实现md5加密功能.doc

相关文档

文档介绍

文档介绍:lassMD5{/*下面这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define实现的,,*/staticfinalintS11=7;staticfinalintS12=12;staticfinalintS13=17;staticfinalintS14=22;staticfinalintS21=5;staticfinalintS22=9;staticfinalintS23=14;staticfinalintS24=20;staticfinalintS31=4;staticfinalintS32=11;staticfinalintS33=16;staticfinalintS34=23;staticfinalintS41=6;staticfinalintS42=10;staticfinalintS43=15;staticfinalintS44=21;staticfinalbyte[]PADDING={-128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};/*下面的三个成员是MD5计算过程中用到的3个核心数据,在原始的C实现中被定义到MD5_CTX结构中*/privatelong[]state=newlong[4];//state(ABCD)privatelong[]count=newlong[2];//numberofbits,modulo2^64(lsbfirst)privatebyte[]buffer=newbyte[64];//inputbuffer/*digestHexStr是MD5的唯一一个公共成员,是最新一次计算结果的 16进制ASCII表示.*/publicStringdigestHexStr;/*digest,是最新一次计算结果的2进制内部表示,表示128bit的MD5值.*/privatebyte[]digest=newbyte[16];/*getMD5ofStr是类MD5最主要的公共方法,入口参数是你想要进行MD5变换的字符串返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.*/publicStringgetMD5ofStr(Stringinbuf){md5Init();md5Update((),());md5Final();digestHexStr="";for(inti=0;i<16;i++){digestHexStr+=byteHEX(digest[i]);}returndigestHexStr;}//这是MD5这个类的标准构造函数,JavaBean要求有一个public的并且没有参数的构造函数publicMD5(){md5Init();return;}/*md5Init是一个初始化函数,初始化核心变量,装入标准的幻数*/privatevoidmd5Init(){count[0]=0L;count[1]=0L;///*[0]=0x67452301L;state[1]=0xefcdab89L;state[2]=0x98badcfeL;state[3]=0x10325476L;return;}/*F,G,H,I是4个基本的MD5函数,在原始的MD5的C实现中,由于它们是简单的位运算,可能出于效率的考虑把它们实现成了宏,在java中,我们把它们实现成了private方法,名字保持了原来C中的。*/privatelongF(longx,longy,longz){return(x&y)|((~x)&z);}privatelongG(longx,longy,longz){return(x&z)|(y&(~z));}privatelongH(longx,longy,longz){returnx^y^z;}privatelongI(longx,longy,longz){returny^(x|(~z));}/*FF,GG,HH和II将调用F,G,H,I进行近一步变换FF,GG,HH,andIItransformationsforrounds1,2,3,.*/privatelongFF(longa,longb,longc,longd,longx,longs,longac){a+=F(b,c,d)+x+ac;a=((