MD5是唯壹的嗎,因為它是壹個嘻哈函數嗎?
MD5的全稱是Message-digest Algorithm 5,用於確保信息傳輸的完整性和壹致性。它是由麻省理工學院計算機科學實驗室的羅納德·L·李維斯特和RSA數據安全公司在20世紀90年代初開發的,並由MD2、MD3和MD4開發。其作用是在用數字簽名軟件簽署私鑰之前,將大容量信息“壓縮”成秘密格式(即把任意長度的字節串轉換成壹定長度的大整數)。無論是MD2、MD4還是MD5,它們都需要獲得隨機長度的信息並生成128位的信息摘要。盡管這些算法的結構或多或少有些相似,但MD2的設計與MD4和MD5完全不同,因為MD2是為8位計算機優化的,而MD4和MD5是為32位計算機設計的。這三種算法的描述和C語言的源代碼在Internet RFC 1321(/被設置為公開征求專門針對MD5的攻擊,該網站於2004年8月17日宣布:“中國研究人員發現完整MD5算法的碰撞;王,馮,賴和於宣布了幾個哈希函數的沖突:MD5,MD4,HAVAL-128,RIPEMD-128。這是近年來密碼學領域最實質性的研究進展。使用他們的技術,MD5沖突可以在幾個小時內找到。.....由於這壹裏程碑式的發現,MD5CRK項目將在未來48小時內結束”。MD5使用散列函數,計算機網絡中廣泛使用的不可逆加密算法是RSA公司發明的MD5算法和美國國家技術標準研究所提出的安全散列算法SHA。【編輯本段】MD5的典型應用是為壹條信息生成消息摘要以防止篡改。例如,在UNIX下,許多軟件都有壹個相同文件名的文件,文件擴展名為。md5,該文件中通常只有壹行文本,壹般結構如下:MD5(tanajiya.tar.gz)= 0ca 175 B9 c0f 726 a 831d 895 e 26933241,這是tanajiya.tar.gz文件的數字簽名。MD5將整個文件視為壹個大的文本消息,並通過其不可逆的字符串轉換算法,生成這個唯壹的MD5消息摘要。為了讓讀者對MD5的應用有壹個直觀的了解,作者用壹個例子和壹個實例簡要描述了它的工作過程:眾所周知,地球上的每個人都有自己唯壹的指紋,這往往是公安機關識別罪犯最可靠的方法;同樣,MD5可以為任何文件生成同樣唯壹的“數字指紋”(無論其大小、格式和數量如何)。如果任何人對文件進行任何更改,其MD5值,即相應的“數字指紋”將發生變化。我們經常在壹些軟件下載網站的壹些軟件信息中看到MD5值。它的功能是在下載軟件後,我們可以用專門的軟件對下載的文件進行MD5檢查(如Windows MD5檢查),以確保我們獲得的文件與網站提供的文件相同。使用MD5算法檢查文件的方案廣泛應用於軟件下載站、論壇數據庫、系統文件安全等方面。MD5的典型應用是為消息(字節字符串)生成指紋以防止其被篡改。例如,如果您在壹個名為readme.txt的文件中寫了壹段話,並為此readme.txt生成壹個MD5值並記錄下來,那麽您可以將此文件傳播給他人。如果其他人修改了文件中的任何內容,您將在重新計算該文件的MD5時發現它(兩個MD5值不同)。如果有第三方認證機構,MD5還可以防止文檔作者的“否認”,也就是所謂的數字簽名應用。MD5還廣泛應用於操作系統的登錄認證,如Unix、各種BSD系統的登錄密碼、數字簽名等許多方面。例如,在UNIX系統中,用戶的密碼在MD5(或其他類似算法)中被散列並存儲在文件系統中。當用戶登錄時,系統對用戶輸入的密碼進行MD5哈希運算,然後與文件系統中存儲的MD5值進行比較,以確定輸入的密碼是否正確。通過這樣的步驟,系統可以在不知道用戶密碼的明碼的情況下確定用戶登錄系統的合法性。這可以防止擁有系統管理員權限的用戶知道用戶的密碼。MD5將任意長度的“字節字符串”映射到壹個128位的大整數,很難通過這個128位反轉原始字符串。換句話說,即使您看到了源程序和算法的描述,也無法將MD5的值轉換回原始字符串。從數學上講,是因為有無限個原始字符串,有點像沒有反函數的數學函數。因此,要解決md5密碼的問題,更好的方法是:您可以使用本系統中的md5()函數重置密碼,例如admin,只需覆蓋生成的密碼字符串的原始哈希值即可。正是由於這個原因,黑客破譯密碼最常用的方法之壹是壹種叫做“運行字典”的方法。獲取字典的方法有兩種,壹種是日常收集的用作密碼的字符串表,另壹種是通過排列組合方法生成的。首先通過MD5程序計算這些字典項的MD5值,然後在該字典中搜索目標的MD5值。我們假設密碼的最大長度為8個字節,密碼只能是字母和數字,***26+26+10=62個字符,字典中的條目數為p(62,1)+p(62,2)...+p(62)。這種加密技術在UNIX系統中被廣泛使用,這也是UNIX系統比壹般操作系統更健壯的重要原因。