版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第JavaC++實現(xiàn)相同MD5加密算法的方式for(i=0,j=0;jlen;i++,j+=4){
output[j]=(unsignedchar)(input[i]0xff);
output[j+1]=(unsignedchar)((input[i]8)0xff);
output[j+2]=(unsignedchar)((input[i]16)0xff);
output[j+3]=(unsignedchar)((input[i]24)0xff);
inlinevoidDecode(UINT4*output,unsignedchar*input,unsignedintlen)
unsignedinti,j;
for(i=0,j=0;jlen;i++,j+=4)
output[i]=((UINT4)input[j])|(((UINT4)input[j+1])8)|
(((UINT4)input[j+2])16)|(((UINT4)input[j+3])24);
inlinevoidMD5Transform(UINT4state[4],unsignedcharblock[64])
UINT4a=state[0],b=state[1],c=state[2],d=state[3],x[16];
Decode(x,block,64);
FF(a,b,c,d,x[0],S11,0xd76aa478);
FF(d,a,b,c,x[1],S12,0xe8c7b756);
FF(c,d,a,b,x[2],S13,0x242070db);
FF(b,c,d,a,x[3],S14,0xc1bdceee);
FF(a,b,c,d,x[4],S11,0xf57c0faf);
FF(d,a,b,c,x[5],S12,0x4787c62a);
FF(c,d,a,b,x[6],S13,0xa8304613);
FF(b,c,d,a,x[7],S14,0xfd469501);
FF(a,b,c,d,x[8],S11,0x698098d8);
FF(d,a,b,c,x[9],S12,0x8b44f7af);
FF(c,d,a,b,x[10],S13,0xffff5bb1);
FF(b,c,d,a,x[11],S14,0x895cd7be);
FF(a,b,c,d,x[12],S11,0x6b901122);
FF(d,a,b,c,x[13],S12,0xfd987193);
FF(c,d,a,b,x[14],S13,0xa679438e);
FF(b,c,d,a,x[15],S14,0x49b40821);
GG(a,b,c,d,x[1],S21,0xf61e2562);
GG(d,a,b,c,x[6],S22,0xc040b340);
GG(c,d,a,b,x[11],S23,0x265e5a51);
GG(b,c,d,a,x[0],S24,0xe9b6c7aa);
GG(a,b,c,d,x[5],S21,0xd62f105d);
GG(d,a,b,c,x[10],S22,0x2441453);
GG(c,d,a,b,x[15],S23,0xd8a1e681);
GG(b,c,d,a,x[4],S24,0xe7d3fbc8);
GG(a,b,c,d,x[9],S21,0x21e1cde6);
GG(d,a,b,c,x[14],S22,0xc33707d6);
GG(c,d,a,b,x[3],S23,0xf4d50d87);
GG(b,c,d,a,x[8],S24,0x455a14ed);
GG(a,b,c,d,x[13],S21,0xa9e3e905);
GG(d,a,b,c,x[2],S22,0xfcefa3f8);
GG(c,d,a,b,x[7],S23,0x676f02d9);
GG(b,c,d,a,x[12],S24,0x8d2a4c8a);
HH(a,b,c,d,x[5],S31,0xfffa3942);
HH(d,a,b,c,x[8],S32,0x8771f681);
HH(c,d,a,b,x[11],S33,0x6d9d6122);
HH(b,c,d,a,x[14],S34,0xfde5380c);
HH(a,b,c,d,x[1],S31,0xa4beea44);
HH(d,a,b,c,x[4],S32,0x4bdecfa9);
HH(c,d,a,b,x[7],S33,0xf6bb4b60);
HH(b,c,d,a,x[10],S34,0xbebfbc70);
HH(a,b,c,d,x[13],S31,0x289b7ec6);
HH(d,a,b,c,x[0],S32,0xeaa127fa);
HH(c,d,a,b,x[3],S33,0xd4ef3085);
HH(b,c,d,a,x[6],S34,0x4881d05);
HH(a,b,c,d,x[9],S31,0xd9d4d039);
HH(d,a,b,c,x[12],S32,0xe6db99e5);
HH(c,d,a,b,x[15],S33,0x1fa27cf8);
HH(b,c,d,a,x[2],S34,0xc4ac5665);
II(a,b,c,d,x[0],S41,0xf4292244);
II(d,a,b,c,x[7],S42,0x432aff97);
II(c,d,a,b,x[14],S43,0xab9423a7);
II(b,c,d,a,x[5],S44,0xfc93a039);
II(a,b,c,d,x[12],S41,0x655b59c3);
II(d,a,b,c,x[3],S42,0x8f0ccc92);
II(c,d,a,b,x[10],S43,0xffeff47d);
II(b,c,d,a,x[1],S44,0x85845dd1);
II(a,b,c,d,x[8],S41,0x6fa87e4f);
II(d,a,b,c,x[15],S42,0xfe2ce6e0);
II(c,d,a,b,x[6],S43,0xa3014314);
II(b,c,d,a,x[13],S44,0x4e0811a1);
II(a,b,c,d,x[4],S41,0xf7537e82);
II(d,a,b,c,x[11],S42,0xbd3af235);
II(c,d,a,b,x[2],S43,0x2ad7d2bb);
II(b,c,d,a,x[9],S44,0xeb86d391);
state[0]+=a;
state[1]+=b;
state[2]+=c;
state[3]+=d;
memset((POINTER)x,0,sizeof(x));
inlinevoidMD5Init(MD5_CTX*context)
context-count[0]=context-count[1]=0;
context-state[0]=0x67452301;
context-state[1]=0xefcdab89;
context-state[2]=0x98badcfe;
context-state[3]=0x10325476;
inlinevoidMD5Update(MD5_CTX*context,unsignedchar*input,unsignedintinputLen)
unsignedinti,index,partLen;
index=(unsignedint)((context-count[0]3)0x3F);
if((context-count[0]+=((UINT4)inputLen3))
((UINT4)inputLen3))
context-count[1]++;
context-count[1]+=((UINT4)inputLen29);
partLen=64-index;
if(inputLen=partLen){
memcpy((POINTER)context-buffer[index],(POINTER)input,partLen);
MD5Transform(context-state,context-buffer);
for(i=partLen;i+63inputLen;i+=64)
MD5Transform(context-state,input[i]);
index=0;
else
i=0;
memcpy((POINTER)context-buffer[index],(POINTER)input[i],inputLen-i);
inlinevoidMD5Final(unsignedchardigest[16],MD5_CTX*context)
unsignedcharbits[8];
unsignedintindex,padLen;
Encode(bits,context-count,8);
index=(unsignedint)((context-count[0]3)0x3f);
padLen=(index56)(56-index):(120-index);
MD5Update(context,PADDING,padLen);
MD5Update(context,bits,8);
Encode(digest,context-state,16);
memset((POINTER)context,0,sizeof(*context));
voidMD5Digest(char*pszInput,unsignedlongnInputSize,char*pszOutPut)
MD5_CTXcontext;
unsignedintlen=strlen(pszInput);
MD5Init(context);
MD5Update(context,(unsignedchar*)pszInput,len);
MD5Final((unsignedchar*)pszOutPut,context);
main()
{charszDigest[16];
charencrypt[200];
printf(請輸入要計算MD5值的字符串:
gets(encrypt);
printf(\n加密結(jié)果:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江開化農(nóng)村商業(yè)銀行寒假實習生社會實踐活動招募備考考試試題附答案解析
- 2025廣東佛山市順德區(qū)沙滘初級中學第二學期臨聘教師招聘備考考試試題附答案解析
- 2026福建南平市建陽區(qū)文化體育和旅游局招聘1人備考考試題庫附答案解析
- 物業(yè)公司生產(chǎn)責任制度
- 原材料生產(chǎn)過程管理制度
- 2026重慶市萬州區(qū)燕山鄉(xiāng)人民政府招聘全日制公益性崗位1人備考考試試題附答案解析
- 倉鼠生產(chǎn)管理員工制度
- 生產(chǎn)企業(yè)黑名單制度
- 2026年河北承德市教育局公開選聘急需緊缺學科教師39名參考考試題庫附答案解析
- 戒毒所生產(chǎn)車間制度
- 中國醫(yī)護服裝行業(yè)未來發(fā)展趨勢分析及投資規(guī)劃建議研究報告
- 《廣州天河商圈》課件
- H31341 V2.5 HCIP-TranSmission 傳輸網(wǎng)練習試題及答案
- 下肢靜脈曲張課件
- (高清版)DZT 0428-2023 固體礦產(chǎn)勘查設(shè)計規(guī)范
- XXX縣村鎮(zhèn)空氣源熱泵區(qū)域集中供熱項目可行性研究報告
- 湖州昆侖億恩科電池材料有限公司年產(chǎn)40000噸鋰離子電池電解液項目環(huán)境影響報告
- 幼兒園班級體弱兒管理總結(jié)
- 肥胖患者圍術(shù)期麻醉管理
- 核酸印跡與分子雜交
- 金屬罐三片罐結(jié)構(gòu)分析
評論
0/150
提交評論