Message Digest Algorithm MD5(消息摘要算法第五版)簡單了解

Message Digest Algorithm MD5(消息摘要算法第五版)為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。
該算法的文件號為RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)

在90年代初由MIT Laboratory for Computer Science和RSA Data Security Ic,的Ronald L. Rivest開發(fā)出來鲫骗,經(jīng)MD2、MD3和MD4發(fā)展而來江锨。它的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個(gè)任意長度的字節(jié)串變換成一定長的大整數(shù))戏锹。

MD5最廣泛被用于各種軟件的密碼認(rèn)證和鑰匙識別上。通俗的講就是人們講的序列號拄氯。

MD2算法

Rivest在1989年開發(fā)出MD2算法躲查。在這個(gè)算法中,首先對信息進(jìn)行數(shù)據(jù)補(bǔ)位译柏,使信息的字節(jié)長度是16的倍數(shù)镣煮。然后,以一個(gè)16位的檢驗(yàn)和追加到信息末尾鄙麦,并且根據(jù)這個(gè)新產(chǎn)生的信息計(jì)算出散列值典唇。后來邮弹,Rogier和Chauvaud發(fā)現(xiàn)如果忽略了檢驗(yàn)將和MD2產(chǎn)生沖突。MD2算法加密后結(jié)果是唯一的(即不同信息加密后的結(jié)果不同)蚓聘。

MD4算法

為了加強(qiáng)算法的安全性腌乡,Rivest在1990年又開發(fā)出MD4算法。MD4算法同樣需要填補(bǔ)信息以確保信息的比特位長度加上448后能被512整除(信息比特位長度mod 512 = 448)夜牡。Den boer和Bosselaers以及其他人很快的發(fā)現(xiàn)了攻擊MD4版本中第一步和第三步的漏洞与纽。
  盡管MD4算法在安全上有個(gè)這么大的漏洞,但它對在其后才被開發(fā)出來的好幾種信息安全加密算法的出現(xiàn)卻有著不可忽視的引導(dǎo)作用塘装。除了MD5以外急迂,其中比較有名的還有sha-1、RIPEMD以及Haval等蹦肴。

MD5算法

一年以后僚碎,即1991年,Rivest開發(fā)出技術(shù)上更為趨近成熟的md5算法阴幌。它在MD4的基礎(chǔ)上增加了"安全-帶子"(safety-belts)的概念勺阐。雖然MD5比MD4稍微慢一些,但卻更為安全矛双。這個(gè)算法很明顯的由四個(gè)和MD4設(shè)計(jì)有少許不同的步驟組成渊抽。在MD5算法中,信息-摘要的大小和填充的必要條件與MD4完全相同议忽。Den boer和Bosselaers曾發(fā)現(xiàn)MD5算法中的假?zèng)_突(pseudo-collisions)懒闷,但除此之外就沒有其他被發(fā)現(xiàn)的加密后結(jié)果了。
  Van oorschot和Wiener曾經(jīng)考慮過一個(gè)在散列中暴力搜尋沖突的函數(shù)(brute-force hash function)栈幸,而且他們猜測一個(gè)被設(shè)計(jì)專門用來搜索MD5沖突的機(jī)器(這臺(tái)機(jī)器在1994年的制造成本大約是一百萬美元)可以平均每24天就找到一個(gè)沖突愤估。但單從1991年到2001年這10年間,竟沒有出現(xiàn)替代MD5算法的MD6或被叫做其他什么名字的新算法這一點(diǎn)速址,我們就可以看出這個(gè)瑕疵并沒有太多的影響MD5的安全性玩焰。上面所有這些都不足以成為MD5的在實(shí)際應(yīng)用中的問題。并且壳繁,由于MD5算法的使用不需要支付任何版權(quán)費(fèi)用的震捣,所以在一般的情況下(非絕密應(yīng)用領(lǐng)域。但即便是應(yīng)用在絕密領(lǐng)域內(nèi)闹炉,MD5也不失為一種非常優(yōu)秀的中間技術(shù))蒿赢,MD5怎么都應(yīng)該算得上是非常安全的了。
  MD5用的是哈希函數(shù),在計(jì)算機(jī)網(wǎng)絡(luò)中應(yīng)用較多的不可逆加密算法有RSA公司發(fā)明的MD5算法和由美國國家技術(shù)標(biāo)準(zhǔn)研究所建議的安全散列算法SHA渣触。

算法的應(yīng)用

1.對信息產(chǎn)生摘要

MD5的典型應(yīng)用是對一段信息(Message)產(chǎn)生信息摘要(Message-Digest)羡棵,以防止被篡改。比如嗅钻,在UNIX下有很多軟件在下載的時(shí)候都有一個(gè)文件名相同皂冰,文件擴(kuò)展名為.md5的文件店展,在這個(gè)文件中通常只有一行文本,大致結(jié)構(gòu)如:
  MD5 (文件abc.tar.gz) = 0ca175b9c0f726a831d895e244332461

這就是 “文件abc.tar.gz” 的數(shù)字簽名秃流。MD5將整個(gè)文件當(dāng)作一個(gè)大文本信息赂蕴,通過其不可逆的字符串變換算法,產(chǎn)生了這個(gè)唯一的MD5信息摘要舶胀。
地球上任何人都有自己獨(dú)一無二的指紋概说,這常常成為鑒別罪犯身份最值得信賴的方法;與之類似嚣伐,MD5就可以為任何文件(不管其大小糖赔、格式、數(shù)量)產(chǎn)生一個(gè)同樣獨(dú)一無二的“數(shù)字指紋”轩端,如果任何人對文件做了任何改動(dòng)放典,其MD5值也就是對應(yīng)的“數(shù)字指紋”都會(huì)發(fā)生變化。
  我們常常在某些軟件下載站點(diǎn)的某軟件信息中看到其MD5值基茵,它的作用就在于我們可以在下載該軟件后奋构,對下載回來的文件用專門的軟件(如Windows MD5 Check等)做一次MD5校驗(yàn),以確保我們獲得的文件與該站點(diǎn)提供的文件為同一文件耿导。利用MD5算法來進(jìn)行文件校驗(yàn)的方案被大量應(yīng)用到軟件下載站声怔、論壇數(shù)據(jù)庫、系統(tǒng)文件安全等方面舱呻。

2.對字節(jié)串產(chǎn)生指紋

MD5的典型應(yīng)用是對一段Message(字節(jié)串)產(chǎn)生fingerprint(指紋),以防止被“篡改”悠汽。舉個(gè)例子箱吕,你將一段話寫在一個(gè)叫 myfile.txt文件中,并對這個(gè)myfile.txt產(chǎn)生一個(gè)MD5的值并記錄在案柿冲,然后你可以傳播這個(gè)文件給別人茬高,別人如果修改了文件中的任何內(nèi)容,你對這個(gè)文件重新計(jì)算MD5時(shí)就會(huì)發(fā)現(xiàn)(兩個(gè)MD5值不相同)假抄。如果再有一個(gè)第三方的認(rèn)證機(jī)構(gòu)怎栽,用MD5還可以防止文件作者的“抵賴”,這就是所謂的數(shù)字簽名應(yīng)用宿饱。

3.登錄認(rèn)證

MD5還廣泛用于操作系統(tǒng)的登陸認(rèn)證上熏瞄,如Unix、各類BSD系統(tǒng)登錄密碼谬以、數(shù)字簽名等諸多方强饮。如在UNIX系統(tǒng)中用戶的密碼是以MD5(或其它類似的算法)經(jīng)Hash運(yùn)算后存儲(chǔ)在文件系統(tǒng)中。當(dāng)用戶登錄的時(shí)候为黎,系統(tǒng)把用戶輸入的密碼進(jìn)行MD5 Hash運(yùn)算邮丰,然后再去和保存在文件系統(tǒng)中的MD5值進(jìn)行比較行您,進(jìn)而確定輸入的密碼是否正確。通過這樣的步驟剪廉,系統(tǒng)在并不知道用戶密碼的明碼的情況下就可以確定用戶登錄系統(tǒng)的合法性娃循。這可以避免用戶的密碼被具有系統(tǒng)管理員權(quán)限的用戶知道。MD5將任意長度的“字節(jié)串”映射為一個(gè)128bit的大整數(shù)斗蒋,并且是通過該128bit反推原始字符串是困難的捌斧,換句話說就是,即使你看到源程序和算法描述吹泡,也無法將一個(gè)MD5的值變換回原始的字符串骤星,從數(shù)學(xué)原理上說,是因?yàn)樵嫉淖址袩o窮多個(gè)爆哑,這有點(diǎn)象不存在反函數(shù)的數(shù)學(xué)函數(shù)洞难。所以,要遇到了md5密碼的問題揭朝,比較好的辦法是:你可以用這個(gè)系統(tǒng)中的md5()函數(shù)重新設(shè)一個(gè)密碼队贱,如admin,把生成的一串密碼的Hash值覆蓋原來的Hash值就行了潭袱。
  正是因?yàn)檫@個(gè)原因柱嫌,現(xiàn)在被黑客使用最多的一種破譯密碼的方法就是一種被稱為"跑字典"的方法。有兩種方法得到字典屯换,一種是日常搜集的用做密碼的字符串表编丘,另一種是用排列組合方法生成的,先用MD5程序計(jì)算出這些字典項(xiàng)的MD5值彤悔,然后再用目標(biāo)的MD5值在這個(gè)字典中檢索嘉抓。我們假設(shè)密碼的最大長度為8位字節(jié)(8 Bytes),同時(shí)密碼只能是字母和數(shù)字晕窑,共26+26+10=62個(gè)字符抑片,排列組合出的字典的項(xiàng)數(shù)則是P(62,1)+P(62,2)….+P(62,8),那也已經(jīng)是一個(gè)很天文的數(shù)字了杨赤,存儲(chǔ)這個(gè)字典就需要TB級的磁盤陣列敞斋,而且這種方法還有一個(gè)前提,就是能獲得目標(biāo)賬戶的密碼MD5值的情況下才可以疾牲。這種加密技術(shù)被廣泛的應(yīng)用于UNIX系統(tǒng)中植捎,這也是為什么UNIX系統(tǒng)比一般操作系統(tǒng)更為堅(jiān)固一個(gè)重要原因。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末说敏,一起剝皮案震驚了整個(gè)濱河市鸥跟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖医咨,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枫匾,死亡現(xiàn)場離奇詭異,居然都是意外死亡拟淮,警方通過查閱死者的電腦和手機(jī)干茉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來很泊,“玉大人角虫,你說我怎么就攤上這事∥欤” “怎么了戳鹅?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昏兆。 經(jīng)常有香客問我枫虏,道長,這世上最難降的妖魔是什么爬虱? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任隶债,我火速辦了婚禮,結(jié)果婚禮上跑筝,老公的妹妹穿的比我還像新娘死讹。我一直安慰自己,他們只是感情好曲梗,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布赞警。 她就那樣靜靜地躺著,像睡著了一般虏两。 火紅的嫁衣襯著肌膚如雪仅颇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天碘举,我揣著相機(jī)與錄音,去河邊找鬼搁廓。 笑死引颈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的境蜕。 我是一名探鬼主播蝙场,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粱年!你這毒婦竟也來了售滤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎完箩,沒想到半個(gè)月后赐俗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弊知,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年阻逮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秩彤。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叔扼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漫雷,到底是詐尸還是另有隱情瓜富,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布降盹,位于F島的核電站与柑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏澎现。R本人自食惡果不足惜仅胞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望剑辫。 院中可真熱鬧干旧,春花似錦、人聲如沸妹蔽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胳岂。三九已至编整,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間乳丰,已是汗流浹背掌测。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留产园,地道東北人汞斧。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像什燕,于是被迫代替她去往敵國和親粘勒。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 隨著對于安全度的不斷要求乘陪,對于數(shù)據(jù)加解密與破解之間的斗爭统台,加解密的方式也在不斷發(fā)生著變化,來看看現(xiàn)在流行的一些加解...
    zhouhao_180閱讀 2,063評論 1 12
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理暂刘,服務(wù)發(fā)現(xiàn)饺谬,斷路器,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 二十八歲這年,我還是沒有結(jié)婚森缠。 對於備胎一籮筐的男神來說:“這事一點(diǎn)都不稀奇拔鹰,這年代誰還沒有個(gè)結(jié)婚對象呢?”但是贵涵,...
    Alex李宏浩閱讀 312評論 0 4
  • 這是一篇年度總結(jié)性質(zhì)的文章列肢,作為2017新年的首篇,很有必要來個(gè)“轟炸認(rèn)知”的思考盛宴宾茂,以示敬意瓷马。 那,這篇推文應(yīng)...
    李少加閱讀 1,133評論 4 11
  • 專題 青春散場 目錄 上一章 【連載】青春散場 第十六章 表白(2) 青春就像是一個(gè)大大的笑臉和一個(gè)大大的哭臉跨晴,笑...
    圓琛兒閱讀 185評論 2 2