加密算法之MD5

MD5加密算法

  加密的方式有兩種,一種是客戶端和服務器端整個通信信道進行保護加密,如HTTPS協議中的SSL,還有另一種加密是對通信數據本身進行加密,如MD5,接下來主要針對MD5進行研究。

       MD5加密就是信息摘要算法,是一種散列函數,可以將一個字符串,或文件,或壓縮包,執行md5後,就可以生成一個固定長度爲128bit的串。這個串,基本上是唯一的。

       所以,有人修改過壓縮包後,就會生成新的串,這時就可以拿網站提供的串和新生成的串對比,如果不同,那就是被人修改過了。密碼在前端進行加密,然後服務器使用摘要進行對比,這樣在整個密碼的校驗過程中是在服務器端不知道明碼的情況下進行的,極大的保障了密碼的安全。

特點:

1、壓縮性:任意長度的數據,算出MD5值長度都是一樣的;

2、容易計算:從原數據計算出MD5值很容易;

3、抗修改性:對原數據進行任何修改,得到的MD5值都有很大區別;

4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(僞造數據)是非常難的。

作用:

1、一致性檢驗;

2、數字簽名(指紋)

3、安全訪問認證(註冊)

4、在避免文件內容被篡改方面有重大作用,md5可以對字符串進行不可逆的加密,這使得可以生成一個128bit的大數,由於md5算法的原因,他與源文件相對應,即使在文件中做了很小的修改,那麼生成的字符串也是差別巨大。

破解:

  在破解md5方面,最常用的方法是“跑字典”,有兩種方法得到字典,一種是日常蒐集的用做密碼的字符串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。我們假設密碼的最大長度爲8位字節(8 Bytes),同時密碼只能是字母和數字,共26+26+10=62個字節,排列組合出的字典的項數則是P62,1+P62,2)….+P62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁盤陣列,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。

使用md5加密算法實現登錄

  實質上加密算法只是將註冊時的密碼通過MD5轉化爲更多位數,更復雜的字符串,經hash運算後進而將其存在數據庫(文件系統)中,然後在用戶登錄時採用同樣的方法加密,將用戶輸入的密碼進行MD5 hash運算,再從數據庫中取出數據,進行比對,從而實現登錄操作。要遇到了md5密碼的問題,比較好的辦法是:你可以用這個系統中的md5()函數重新設一個密碼,如admin,把生成的一串密碼的Hash值覆蓋原來的Hash值就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章