MD5和Hash


 

不止一次有人問我hash與MD5的區別以及如何選擇使用,今天有人問我了,其實這方面我懂的也不太多,基礎的還是了解一些的,把我知道的記一下吧。

MD5和Hash的區別

首先,MD5與hash都是單向加密的算法,可以把一些信息進行單向加密成固定長度的散列碼。(hash算法即常說的散列算法,也被人翻譯成哈希)

其次,MD5也是hash算法的一種,常見的hash算法還有sha1,sha2等

MD5也被稱為信息摘要算法,由於其算法復雜不夠,容易被暴力破解的。

SHA1算法也存在和MD5一樣的問題。

還有SHA2、SHA256、SHA512等,這些算法的復雜度相對要高,但是依然是可被破解的只是破解成本被增加了,但是一些常用的文本信息(比如密碼)的散列碼被一些專業廠端記錄下來了,還是容易被破解的,怎么辦呢? 加個密碼鹽唄,這樣的話暴力破解幾乎是搞不定了,即使搞定了可能也因為過去太久時間而變的沒有價值

常用的密碼攻擊方式

常用的密碼攻擊方式有字典攻擊、暴力破解、查表法、反向查表法、彩虹表等。
暴力破解:按照一定的順序一個一個的去試
字典攻擊:把常用的密碼做成字典,破解時先看字典里是否存在,有效加快破解速度
查表法:使用一個大型字典,把每個p和對應的q都記錄下來,按q做一下索引,直接查找匹配。
彩虹表 :對於HASH的傳統做法是把H(X)的所有輸出窮舉,查找H(X[y])H§,得出PX[y]。而彩虹表則是使用散列鏈的方式進行。

說明:
"散列鏈"是為了降低傳統做法空間要求的技術,想法是定義一個衰減函數 R 把散列值變換成另一字符串。通過交替運算H函數和R函數,形成交替的密碼和散列值鏈條。

轉載:https://blog.csdn.net/wangqiang9x/article/details/89157231


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM