md5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461
這就是tanajiya.tar.gz檔案的數字簽名。md5將整個檔案當作乙個大文字資訊,通過其不可逆的字串變換演算法,產生了這個唯一的md5資訊摘要。為了讓讀者朋友對md5的應用有個直觀的認識,筆者以乙個比方和乙個例項來簡要描述一下其工作過程:
大家都知道,地球上任何人都有自己獨一無二的指紋,這常常成為公安機關鑑別罪犯身份最值得信賴的方法;與之類似,md5就可以為任何檔案(不管其大小、格式、數量)產生乙個同樣獨一無二的「數字指紋」,如果任何人對檔名做了任何改動,其md5值也就是對應的「數字指紋」都會發生變化。
md5的典型應用是對一段message(位元組串)產生fingerprint(指紋),以防止被「篡改」。舉個例子,你將一段話寫在乙個叫 readme.txt檔案中,並對這個readme.txt產生乙個md5的值並記錄在案,然後你可以傳播這個檔案給別人,別人如果修改了檔案中的任何內容,你對這個檔案重新計算md5時就會發現(兩個md5值不相同)。如果再有乙個第三方的認證機構,用md5還可以防止檔案作者的「抵賴」,這就是所謂的數字簽名應用。
md5還廣泛用於作業系統的登陸認證上,如unix、各類bsd系統登入密碼、數字簽名等諸多方。如在unix系統中使用者的密碼是以md5(或其它類似的演算法)經hash運算後儲存在檔案系統中。當使用者登入的時候,系統把使用者輸入的密碼進行md5 hash運算,然後再去和儲存在檔案系統中的md5值進行比較,進而確定輸入的密碼是否正確。通過這樣的步驟,系統在並不知道使用者密碼的明碼的情況下就可以確定使用者登入系統的合法性。這可以避免使用者的密碼被具有系統管理員許可權的使用者知道。md5將任意長度的「位元組串」對映為乙個128bit的大整數,並且是通過該128bit反推原始字串是困難的,換句話說就是,即使你看到源程式和演算法描述,也無法將乙個md5的值變換回原始的字串,從數學原理上說,是因為原始的字串有無窮多個,這有點象不存在反函式的數學函式。所以,要遇到了md5密碼的問題,比較好的辦法是:你可以用這個系統中的md5()函式重新設乙個密碼,如admin,把生成的一串密碼的hash值覆蓋原來的hash值就行了。
正是因為這個原因,現在被黑客使用最多的一種破譯密碼的方法就是一種被稱為"跑字典"的方法。有兩種方法得到字典,一種是日常蒐集的用做密碼的字串表,另一種是用排列組合方法生成的,先用md5程式計算出這些字典項的md5值,然後再用目標的md5值在這個字典中檢索。我們假設密碼的最大長度為8位位元組(8 bytes),同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是p(62,1)+p(62,2)….+p(62,8),那也已經是乙個很天文的數字了,儲存這個字典就需要tb級的磁碟陣列,而且這種方法還有乙個前提,就是能獲得目標賬戶的密碼md5值的情況下才可以。這種加密技術被廣泛的應用於unix系統中,這也是為什麼unix系統比一般作業系統更為堅固乙個重要原因。
常用md5加密工具:
關於MD5加密
前言 任何以明文方式儲存使用者密碼的行為都是耍流氓。md5作為一種單項加密方式,常用在資料脫敏和軟體數字簽名等方面。以下是介紹正文 md5的全稱是message digest algorithm 5 資訊 摘要演算法 在90年代初由mit laboratory for computer scienc...
關於md5加密
說明 隨著網路發展的越來越廣泛,網上業務越來越流行,使用者的隱私資訊安全性也越來越重要!加密的方式有很多種 目前比較受程式設計師推崇的還是md5加密!md5加密的原理 對任何資訊進行處理生成唯一的128位雜湊表,也就是32個字元 使用步驟 可以直接使用xcode提供的加密也可以在文件中匯入第三方的m...
170929 關於md5加密
在各種應用系統中,如果需要設定賬戶,那麼就會涉及到儲存使用者賬戶資訊的問題,為了保證所儲存賬戶資訊的安全,通常會採用md5加密的方式來,進行儲存。首先,簡單得介紹一下,什麼是md5加密。md5的全稱是message digest algorithm 5 資訊 摘要演算法 在90年代初由mit lab...