Java对MD5算法详细的设计代码.doc

Java对MD5算法详细的设计代码.doc

ID:55631612

大小:49.00 KB

页数:9页

时间:2020-05-21

Java对MD5算法详细的设计代码.doc_第1页
Java对MD5算法详细的设计代码.doc_第2页
Java对MD5算法详细的设计代码.doc_第3页
Java对MD5算法详细的设计代码.doc_第4页
Java对MD5算法详细的设计代码.doc_第5页
资源描述:

《Java对MD5算法详细的设计代码.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、packagecom.std.safety;/********************************************************************************keyBean类实现了RSADataSecurity,Inc.在提交给IETF的RFC1321中的keyBeanmessage-digest*算法。******************************************************************************/publicclasskeyBean{/**下面

2、这些S11-S44实际上是一个4*4的矩阵,在原始的C实现中是用#define实现的,这里把它们实现成为static*final是表示了只读,切能在同一个进程空间内的多个Instance间共享*/staticfinalintS11=7;staticfinalintS12=12;staticfinalintS13=17;staticfinalintS14=22;staticfinalintS21=5;staticfinalintS22=9;staticfinalintS23=14;staticfinalintS24=20;staticfinalintS31

3、=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,

4、0,0,0,0,0,0,0,0,0,0,0,0,0};/**下面的三个成员是keyBean计算过程中用到的3个核心数据,在原始的C实现中被定义到keyBean_CTX结构中*/privatelong[]state=newlong[4];//state(ABCD)privatelong[]count=newlong[2];//numberofbits,modulo2^64(lsb//first)privatebyte[]buffer=newbyte[64];//inputbuffer/**digestHexStr是keyBean的唯一一个公共成员,是最新一

5、次计算结果的16进制ASCII表示.*/publicStringdigestHexStr;/**digest,是最新一次计算结果的2进制内部表示,表示128bit的keyBean值.*/privatebyte[]digest=newbyte[16];/**getkeyBeanofStr是类keyBean最主要的公共方法,入口参数是你想要进行keyBean变换的字符串*返回的是变换完的结果,这个结果是从公共成员digestHexStr取得的.*/publicStringgetkeyBeanofStr(Stringinbuf){keyBeanInit();k

6、eyBeanUpdate(inbuf.getBytes(),inbuf.length());keyBeanFinal();digestHexStr="";for(inti=0;i<16;i++){digestHexStr+=byteHEX(digest[i]);}returndigestHexStr;}//这是keyBean这个类的标准构造函数,JavaBean要求有一个public的并且没有参数的构造函数publickeyBean(){keyBeanInit();return;}/*keyBeanInit是一个初始化函数,初始化核心变量,装入标准的幻数

7、*/privatevoidkeyBeanInit(){count[0]=0L;count[1]=0L;///*Loadmagicinitializationconstants.state[0]=0xL;state[1]=0xefcdab89L;state[2]=0x98badcfeL;state[3]=0xL;return;}/**F,G,H,I是4个基本的keyBean函数,在原始的keyBean的C实现中,由于它们是*简单的位运算,可能出于效率的考虑把它们实现成了宏,在java中,我们把它们实现成了private方法,名字保持了原来C中的。*/pri

8、vatelongF(longx,longy,longz){return(x&y)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。