MD5資訊摘要 檔案的獨一無二的「數字指紋」

2021-06-18 04:10:36 字數 1447 閱讀 8288

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系統登入密碼、

數字簽名等諸多方面。如在unⅸ系統中使用者的密碼是以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值的情況下才可以。這種加密技術被廣泛的應用於unⅸ系統中,這也是為什麼unⅸ系統比一般

作業系統更為堅固乙個重要原因

獨一無二的DeviceId

兩個概念 imsi international mobile subscriber identity of the sim card present in your mobile and the imei international mobile equipment identity the ims...

指紋是獨一無二的?

每天上班都要打卡兩次 上午上班時一次 下午下班時一次 用的是指紋打卡機 已經錄了我的大拇指和食指的指紋 用手指摁的時候 會顯示姓名以及用哪個手指摁的 結果 每次我摁的時候 十次中至少就有九次出現別人的名字 是個女孩的名字 而且有一次她在我前面打卡 恰巧還被我遇到了 我第一次發現的時候 被嚇了一跳 後...

獨一無二的出現次數

給你乙個整數陣列 arr,請你幫忙統計陣列中每個數的出現次數。如果每個數的出現次數都是獨一無二的,就返回 true 否則返回 false。示例 1 輸入 arr 1,2,2,1,1,3 輸出 true 解釋 在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次...