汪勛亮++趙春霞++郭劍輝
摘要:MD5算法在數(shù)據(jù)加密方面有著廣泛的應(yīng)用,但是它無法抵御查字典攻擊和差分等攻擊。為此本文介紹了報文摘要算法MD5和Base64算法,以及在兩種算法的基礎(chǔ)上提出了MD5的改進(jìn)算法,以應(yīng)對以上被攻擊的缺陷。
關(guān)鍵詞:報文摘要算法 Hash函數(shù) Base64算法 改進(jìn)算法 字典攻擊
中圖分類號:TP393.08 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2014)08-0117-03
1 概述
隨著信息化的高速發(fā)展,人們對信息安全的需求接踵而至。我們經(jīng)常需要一種措施來保護(hù)我們的數(shù)據(jù),防止被一些懷有不良用心的人所看到或者破壞。人才競爭、市場競爭、金融危機(jī)、敵特機(jī)構(gòu)等都給企事業(yè)單位的發(fā)展帶來巨大風(fēng)險,內(nèi)部竊密、黑客攻擊、無意識泄密等竊密手段成為了人與人之間、企業(yè)與企業(yè)之間、國與國之間的安全隱患。因此,在客觀上就需要一種強(qiáng)有力的安全措施來保護(hù)機(jī)密數(shù)據(jù)不被竊取或篡改。解決這個問題的方式就是通過數(shù)據(jù)加密。進(jìn)幾年來各大知名網(wǎng)站相繼爆出數(shù)據(jù)庫密碼被黑,造成上千萬用戶的用戶密碼丟失,由于大部分用戶的很多網(wǎng)站的賬號密碼由此帶來的危害是不可預(yù)測的。所以對數(shù)據(jù)進(jìn)行加密就顯得非常必要。
1991年,Rivest開發(fā)出技術(shù)上更為趨近成熟的md5算法。它在MD4的基礎(chǔ)上增加了"安全-帶子"(safety-belts)的概念。雖然MD5比MD4復(fù)雜度大一些,但卻更為安全。這個算法很明顯的由四個和MD4設(shè)計有少許不同的步驟組成。在MD5算法中,信息-摘要的大小和填充的必要條件與MD4完全相同。Den boer和Bosselaers曾發(fā)現(xiàn)MD5算法中的假沖突(pseudo-collisions),但除此之外就沒有其他被發(fā)現(xiàn)的加密后結(jié)果了。
普遍認(rèn)為MD5是很安全,因?yàn)楸┝ζ平獾臅r間是一般人無法接受的。實(shí)際上如果把用戶的密碼MD5處理后再存儲到數(shù)據(jù)庫,其實(shí)是很不安全的。因?yàn)橛脩舻拿艽a是比較短的,而且很多用戶的密碼都使用生日,手機(jī)號碼,身份證號碼,電話號碼等等?;蛘呤褂贸S玫囊恍┘臄?shù)字,或者某個英文單詞。如果把常用的密碼先MD5處理,把數(shù)據(jù)存儲起來,然后再跟你的MD5結(jié)果匹配,這時就有可能得到明文。
2 MD5算法和Base64算法原理
MD5算法過程:
MD5算法可以簡要的敘述為:MD5是以512位分組來進(jìn)行處理輸入的信息,而且每一個分組同時又被劃分成16個32位的子分組,經(jīng)過一系列的處理后,它的輸出同時由四個32位分組進(jìn)行組成,然后將這四個32位分組進(jìn)行級聯(lián)后將生成一個128位的散列值。
(1)填充:如果輸入信息的長度(bit)對512求余后得到結(jié)果不等于448,那么就需要填充使得對512求余的結(jié)果為448。填充的辦法是填充一個1和n個0。填充結(jié)束后,信息的長度就變成了N*512+448(bit)。
(2)記錄信息的長度:用64位大小來存儲填充前信息的長度。把這64位加在第一步所計算結(jié)果的后面,這樣信息的長度大小就變成了N*512+448+64=(N+1)*512位。
(3)裝入標(biāo)準(zhǔn)的幻數(shù)(四個整數(shù)):標(biāo)準(zhǔn)的幻數(shù)(物理順序)是(A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。如果在程序中定義應(yīng)該是(A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L)。
(4)四輪循環(huán)運(yùn)算:循環(huán)的次數(shù)是分組的個數(shù)(N+1):
1)將每一512字節(jié)細(xì)分成16個小組,每個小組64位(8個字節(jié));
2)先認(rèn)識四個線性函數(shù)(&是與,|是或,~是非,^是異或):
F(X,Y,Z)=(X&Y)|((~X)&Z)
G(X,Y,Z)=(X&Z)|(Y&(~Z))
H(X,Y,Z)=X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
3)設(shè)Mj表示消息的第j個子分組(從0到15),<<
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+F(b,c,d)+Mj+ti)<<
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+G(b,c,d)+Mj+ti)<<
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+H(b,c,d)+Mj+ti)<<
II(a,b,c,d,Mj,s,ti)表示a=b+((a+I(b,c,d)+Mj+ti)<<
4)四輪運(yùn)算;
5)每輪循環(huán)后,將A,B,C,D分別加上a,b,c,d,然后進(jìn)入下一循環(huán)。
Base64算法過程[5]:
根據(jù)Base64編碼的原理,先將輸入信息轉(zhuǎn)化為二進(jìn)制流,然后每次取出其中的6位,與標(biāo)準(zhǔn)編碼表對照,找到相應(yīng)的ASCI字符,最后將取出的字符轉(zhuǎn)化為輸出即可得編碼流。
具體實(shí)現(xiàn)步驟如下:
(1)取編碼表值方法。
將字符轉(zhuǎn)化為6位二進(jìn)制數(shù)據(jù)流。
1)從標(biāo)準(zhǔn)編碼表的第一個字符開始;
2)如果要查找的字符和標(biāo)準(zhǔn)編碼表的當(dāng)前字符相等,則返回 字符所在的位置,作為返回數(shù)據(jù)流,退出循環(huán);否則,取標(biāo)準(zhǔn)編碼表中的下一個字符;
3)重復(fù)第"重復(fù)第2步驟,直到找到這樣的字符或到達(dá)標(biāo)準(zhǔn)編碼表的尾部;
4)如果未找到,則返回錯誤;否則返回該字符在標(biāo)準(zhǔn)編碼表位置,輸出該數(shù)據(jù)作為數(shù)據(jù)流。
(2)Base64編碼方法。
將取編碼表值方法得到的二進(jìn)制數(shù)據(jù)流轉(zhuǎn)化為 Base64 編碼流。
1)分配要轉(zhuǎn)化的二進(jìn)制數(shù)據(jù)流所需位空間,并將該二進(jìn)制數(shù)據(jù)流裝入到位空間內(nèi);
2)取出其中的6位,并將6位轉(zhuǎn)化成整型,得出整型數(shù)值n;
3)在標(biāo)準(zhǔn)編碼表中,找到該整型數(shù)值n所對應(yīng)的字符,即Table[n];
4)取出該字符,作為輸出Base64編碼流;
5)重復(fù)第(2)步驟,直到所有的二進(jìn)制數(shù)據(jù)流被取空;
6)返回編碼的Base64數(shù)據(jù)流。
(3)Base64解碼方法:
將得到的Base64編碼流轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)流。
1)取出Base64編碼流的一個字符;
2)將這字符通過取編碼表值,轉(zhuǎn)化成6位二進(jìn)制數(shù)據(jù)流;
3)重復(fù)第"重復(fù)第2步驟,直到所有的Base64編碼流被取空;
4)返回解碼的二進(jìn)制數(shù)據(jù)流。
3 改進(jìn)算法描述
目前對于網(wǎng)站系統(tǒng)或者信息管理系統(tǒng)來說,傳統(tǒng)的MD5算法的應(yīng)用主要是針對于用戶的口令進(jìn)行加密處理。一般情況下,在用戶的密碼復(fù)雜度不足或者是一般時,會有多種方法對其加密后的密碼進(jìn)行破解的。從以下幾個方面對MD5算法進(jìn)行改進(jìn):
(1)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產(chǎn)生結(jié)果為32位的密文時對32拆封4組,每組8位,然后對這4組進(jìn)行重排或者每組組內(nèi)進(jìn)行重排。
(2)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行二次加密處理;當(dāng)?shù)玫組D5密文的時候在結(jié)合Base64的改進(jìn)算法[6]對此密文進(jìn)行二次加密。
(3)對每次MD5加密后得到不同的動態(tài)MD5密文;對得到的MD5密文中間不同的位置插入當(dāng)前加密的系統(tǒng)時間的Base64加密密文,從而迷惑解密者。
綜合以上幾個方面的改進(jìn)思想,改進(jìn)的算法步驟如下:
(1)首先對明文進(jìn)行MD5加密,如明文為:hello;加密結(jié)果和通過在線查詢結(jié)果如圖1、圖2。
可以看出復(fù)雜度不高的密碼經(jīng)過md5加密是可以通過在線的進(jìn)行破解,我們把md5加密的結(jié)果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。
(2)生成當(dāng)前的系統(tǒng)時間,并對系統(tǒng)的時間用改進(jìn)后的Base64算法進(jìn)行加密,如圖3所示。
然后去除最后的空白補(bǔ)填在分成兩組:MTAtMDgxM、zowM zo1OQ。
(3)對步驟(1)的分組進(jìn)行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進(jìn)行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。
(4)對步驟(3)得到的二次加密密文進(jìn)行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=
(5)在自身系統(tǒng)登錄驗(yàn)證的時候要經(jīng)過去除動態(tài)干擾的那部分密文才可以進(jìn)行驗(yàn)證。
4 結(jié)語
由于現(xiàn)在的破解MD5解密的網(wǎng)站是對大量明文進(jìn)行加密然后把相應(yīng)的明文-密碼記錄存儲在數(shù)據(jù)庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實(shí)現(xiàn)的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進(jìn)算法的基礎(chǔ)上進(jìn)行改進(jìn)、使得加密后的密文更加復(fù)雜,不在可能通過簡單的解密網(wǎng)站進(jìn)行破解,系統(tǒng)自身的登陸驗(yàn)證也需要通過一定的規(guī)則生成密文后在經(jīng)過一定的處理去除動態(tài)干擾的部分密文才能進(jìn)行驗(yàn)證。所以本文提示的MD5改進(jìn)算法大大提高了原算法的安全性。
參考文獻(xiàn)
[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.
[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.
[3]周榮華.散列函數(shù)密碼分析的研究[D].武漢:華中科技大學(xué),2006:51-54.
[4]吳建軍,柏傳慧.使用MD5保護(hù)Web應(yīng)用安全.計算機(jī)安全,2003(10):45-48.
[5]韓宇貞,朱華生.基于Base64編碼的數(shù)據(jù)加密技術(shù).南昌水專學(xué)報,2002(12):39-40.
[6]姚峰.Java平臺中Base64編碼/解碼算法的改進(jìn).計算機(jī)應(yīng)用與軟件,2008(12):164-165.
[7]柏銀,李志蜀,朱興東.MD5算法及其在遠(yuǎn)程身份認(rèn)證中的應(yīng)用[J].四川大學(xué)學(xué)報:自然科學(xué)版,2006,43(2):205-309.endprint
1)分配要轉(zhuǎn)化的二進(jìn)制數(shù)據(jù)流所需位空間,并將該二進(jìn)制數(shù)據(jù)流裝入到位空間內(nèi);
2)取出其中的6位,并將6位轉(zhuǎn)化成整型,得出整型數(shù)值n;
3)在標(biāo)準(zhǔn)編碼表中,找到該整型數(shù)值n所對應(yīng)的字符,即Table[n];
4)取出該字符,作為輸出Base64編碼流;
5)重復(fù)第(2)步驟,直到所有的二進(jìn)制數(shù)據(jù)流被取空;
6)返回編碼的Base64數(shù)據(jù)流。
(3)Base64解碼方法:
將得到的Base64編碼流轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)流。
1)取出Base64編碼流的一個字符;
2)將這字符通過取編碼表值,轉(zhuǎn)化成6位二進(jìn)制數(shù)據(jù)流;
3)重復(fù)第"重復(fù)第2步驟,直到所有的Base64編碼流被取空;
4)返回解碼的二進(jìn)制數(shù)據(jù)流。
3 改進(jìn)算法描述
目前對于網(wǎng)站系統(tǒng)或者信息管理系統(tǒng)來說,傳統(tǒng)的MD5算法的應(yīng)用主要是針對于用戶的口令進(jìn)行加密處理。一般情況下,在用戶的密碼復(fù)雜度不足或者是一般時,會有多種方法對其加密后的密碼進(jìn)行破解的。從以下幾個方面對MD5算法進(jìn)行改進(jìn):
(1)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產(chǎn)生結(jié)果為32位的密文時對32拆封4組,每組8位,然后對這4組進(jìn)行重排或者每組組內(nèi)進(jìn)行重排。
(2)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行二次加密處理;當(dāng)?shù)玫組D5密文的時候在結(jié)合Base64的改進(jìn)算法[6]對此密文進(jìn)行二次加密。
(3)對每次MD5加密后得到不同的動態(tài)MD5密文;對得到的MD5密文中間不同的位置插入當(dāng)前加密的系統(tǒng)時間的Base64加密密文,從而迷惑解密者。
綜合以上幾個方面的改進(jìn)思想,改進(jìn)的算法步驟如下:
(1)首先對明文進(jìn)行MD5加密,如明文為:hello;加密結(jié)果和通過在線查詢結(jié)果如圖1、圖2。
可以看出復(fù)雜度不高的密碼經(jīng)過md5加密是可以通過在線的進(jìn)行破解,我們把md5加密的結(jié)果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。
(2)生成當(dāng)前的系統(tǒng)時間,并對系統(tǒng)的時間用改進(jìn)后的Base64算法進(jìn)行加密,如圖3所示。
然后去除最后的空白補(bǔ)填在分成兩組:MTAtMDgxM、zowM zo1OQ。
(3)對步驟(1)的分組進(jìn)行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進(jìn)行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。
(4)對步驟(3)得到的二次加密密文進(jìn)行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=
(5)在自身系統(tǒng)登錄驗(yàn)證的時候要經(jīng)過去除動態(tài)干擾的那部分密文才可以進(jìn)行驗(yàn)證。
4 結(jié)語
由于現(xiàn)在的破解MD5解密的網(wǎng)站是對大量明文進(jìn)行加密然后把相應(yīng)的明文-密碼記錄存儲在數(shù)據(jù)庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實(shí)現(xiàn)的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進(jìn)算法的基礎(chǔ)上進(jìn)行改進(jìn)、使得加密后的密文更加復(fù)雜,不在可能通過簡單的解密網(wǎng)站進(jìn)行破解,系統(tǒng)自身的登陸驗(yàn)證也需要通過一定的規(guī)則生成密文后在經(jīng)過一定的處理去除動態(tài)干擾的部分密文才能進(jìn)行驗(yàn)證。所以本文提示的MD5改進(jìn)算法大大提高了原算法的安全性。
參考文獻(xiàn)
[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.
[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.
[3]周榮華.散列函數(shù)密碼分析的研究[D].武漢:華中科技大學(xué),2006:51-54.
[4]吳建軍,柏傳慧.使用MD5保護(hù)Web應(yīng)用安全.計算機(jī)安全,2003(10):45-48.
[5]韓宇貞,朱華生.基于Base64編碼的數(shù)據(jù)加密技術(shù).南昌水專學(xué)報,2002(12):39-40.
[6]姚峰.Java平臺中Base64編碼/解碼算法的改進(jìn).計算機(jī)應(yīng)用與軟件,2008(12):164-165.
[7]柏銀,李志蜀,朱興東.MD5算法及其在遠(yuǎn)程身份認(rèn)證中的應(yīng)用[J].四川大學(xué)學(xué)報:自然科學(xué)版,2006,43(2):205-309.endprint
1)分配要轉(zhuǎn)化的二進(jìn)制數(shù)據(jù)流所需位空間,并將該二進(jìn)制數(shù)據(jù)流裝入到位空間內(nèi);
2)取出其中的6位,并將6位轉(zhuǎn)化成整型,得出整型數(shù)值n;
3)在標(biāo)準(zhǔn)編碼表中,找到該整型數(shù)值n所對應(yīng)的字符,即Table[n];
4)取出該字符,作為輸出Base64編碼流;
5)重復(fù)第(2)步驟,直到所有的二進(jìn)制數(shù)據(jù)流被取空;
6)返回編碼的Base64數(shù)據(jù)流。
(3)Base64解碼方法:
將得到的Base64編碼流轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)流。
1)取出Base64編碼流的一個字符;
2)將這字符通過取編碼表值,轉(zhuǎn)化成6位二進(jìn)制數(shù)據(jù)流;
3)重復(fù)第"重復(fù)第2步驟,直到所有的Base64編碼流被取空;
4)返回解碼的二進(jìn)制數(shù)據(jù)流。
3 改進(jìn)算法描述
目前對于網(wǎng)站系統(tǒng)或者信息管理系統(tǒng)來說,傳統(tǒng)的MD5算法的應(yīng)用主要是針對于用戶的口令進(jìn)行加密處理。一般情況下,在用戶的密碼復(fù)雜度不足或者是一般時,會有多種方法對其加密后的密碼進(jìn)行破解的。從以下幾個方面對MD5算法進(jìn)行改進(jìn):
(1)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行打亂重新排列,是的破解者無法重得到的密碼直接破解密碼;得到產(chǎn)生結(jié)果為32位的密文時對32拆封4組,每組8位,然后對這4組進(jìn)行重排或者每組組內(nèi)進(jìn)行重排。
(2)對已經(jīng)進(jìn)行MD5加密后的密文進(jìn)行二次加密處理;當(dāng)?shù)玫組D5密文的時候在結(jié)合Base64的改進(jìn)算法[6]對此密文進(jìn)行二次加密。
(3)對每次MD5加密后得到不同的動態(tài)MD5密文;對得到的MD5密文中間不同的位置插入當(dāng)前加密的系統(tǒng)時間的Base64加密密文,從而迷惑解密者。
綜合以上幾個方面的改進(jìn)思想,改進(jìn)的算法步驟如下:
(1)首先對明文進(jìn)行MD5加密,如明文為:hello;加密結(jié)果和通過在線查詢結(jié)果如圖1、圖2。
可以看出復(fù)雜度不高的密碼經(jīng)過md5加密是可以通過在線的進(jìn)行破解,我們把md5加密的結(jié)果分割成四部分,分別為:5d41402a、bc4b2a76、b9719d91、1017c592。
(2)生成當(dāng)前的系統(tǒng)時間,并對系統(tǒng)的時間用改進(jìn)后的Base64算法進(jìn)行加密,如圖3所示。
然后去除最后的空白補(bǔ)填在分成兩組:MTAtMDgxM、zowM zo1OQ。
(3)對步驟(1)的分組進(jìn)行重排得到1017c592bc4b2a765d4 1402ab9719d91,在對重排后的密文進(jìn)行二次Base64加密得到:MTAxN2M1OTJiYzRiMmE3NjVkNDE0MDJhYjk3MTlkOTE=。
(4)對步驟(3)得到的二次加密密文進(jìn)行分組:MTAxN2M1OTJ、iYzRiMmE3Nj、VkNDE0MDJhY、jk3MTlkOTE=,然后把步驟(2)生成的Base64密文分組插入其中得到最終的密文:MTAxN2M1O TJMTAtMDgxMiYzRiMmE3NjzowMzo1OQVkNDE0MDJhYjk3MTlkOTE=
(5)在自身系統(tǒng)登錄驗(yàn)證的時候要經(jīng)過去除動態(tài)干擾的那部分密文才可以進(jìn)行驗(yàn)證。
4 結(jié)語
由于現(xiàn)在的破解MD5解密的網(wǎng)站是對大量明文進(jìn)行加密然后把相應(yīng)的明文-密碼記錄存儲在數(shù)據(jù)庫中,然后直接通過查詢密文就可以直接獲取明文密碼,所以普通密碼的MD5的破解是完全可以實(shí)現(xiàn)的。本文研究了一個典型的單向散列算法MD5,并在此算法和Base64的改進(jìn)算法的基礎(chǔ)上進(jìn)行改進(jìn)、使得加密后的密文更加復(fù)雜,不在可能通過簡單的解密網(wǎng)站進(jìn)行破解,系統(tǒng)自身的登陸驗(yàn)證也需要通過一定的規(guī)則生成密文后在經(jīng)過一定的處理去除動態(tài)干擾的部分密文才能進(jìn)行驗(yàn)證。所以本文提示的MD5改進(jìn)算法大大提高了原算法的安全性。
參考文獻(xiàn)
[1]RIVEST R.The MD5 Message-Digest Algorithm[S].RFC 1321.MIT Laboratory for Computer Science and RSA DATA Security,Inc.April 1992.
[2]FREED N .RFC2045,Multipurpose Internet mail extensions[S/OL].[2011-12-01].http://rfc.net/rfc2045.Html.
[3]周榮華.散列函數(shù)密碼分析的研究[D].武漢:華中科技大學(xué),2006:51-54.
[4]吳建軍,柏傳慧.使用MD5保護(hù)Web應(yīng)用安全.計算機(jī)安全,2003(10):45-48.
[5]韓宇貞,朱華生.基于Base64編碼的數(shù)據(jù)加密技術(shù).南昌水專學(xué)報,2002(12):39-40.
[6]姚峰.Java平臺中Base64編碼/解碼算法的改進(jìn).計算機(jī)應(yīng)用與軟件,2008(12):164-165.
[7]柏銀,李志蜀,朱興東.MD5算法及其在遠(yuǎn)程身份認(rèn)證中的應(yīng)用[J].四川大學(xué)學(xué)報:自然科學(xué)版,2006,43(2):205-309.endprint