md5 字典


拖庫是指黑客盜取了網站的數據庫。撞庫是指黑客用拖庫獲得的用戶名和密碼在其它網站批量嘗試登陸,進而盜取更有價值的東西。由於一些用戶在多個網站用相同的用戶名和密碼,所以撞庫是有一定成功率的。現在稍微有點責任感的網站都不會將密碼明文保存在數據庫中,起碼會做一次MD5。要想撞庫,必須得知道密碼的明文,也就是用戶真正輸入的密碼。我們知道MD5算法是不可逆的,黑客是怎么弄到密碼明文的呢?最常用的辦法就是MD5字典。

 

MD5字典是什么?

其實就是提前將一些比較簡單的密碼(比如10位以內的純數字)做MD5運算,將結果保存下來,破譯密碼的時候直接查就行了。比如字符串“123”的MD5值是“202cb962ac59075b964b07152d234b70”,黑客在拖來的數據庫中看到某位用戶的密碼是“202cb962ac59075b964b07152d234b70”,通過字典一查就知道密碼明文是“123”了。當然黑客用字典破譯密碼不會人工一個一個的查,而是用程序批量查詢的。

 

所有密碼都能用MD5字典破譯嗎?

理論上可以,但實際上只能破解比較簡單的密碼。下面我們看看不同復雜度密碼對應的MD5字典有多大。1.10位以內純數字共10^1+10^2+10^3+10^4+10^5+10^6+10^7+10^8+10^9+10^10=10(1-10^10)/(1-10)=11,111,111,110條≈110億條保存每條記錄至少需要42字節(密碼10字節+MD5值32字節),則存儲該MD5字典至少需要約467GB空間。2.10位以內的數字+小寫字母共36(1-36^10)/(1-36)=3,760,620,109,779,060條≈3760萬億條保存每條記錄至少需要42字節(密碼10字節+MD5值32字節),則存儲該MD5字典至少需要約157946TB空間。通過以上兩個例子可以看到,如果用戶的密碼是10位以上的數字和字母組合,通過MD5字典破解的概率幾乎為零。但並不是所有用戶的密碼都足夠強,黑客拖庫后,使用弱密碼的賬戶很容易就被查到明文了。對於使用弱密碼的賬戶,被拖庫的網站就無能為力了嗎?不是的。辦法也很簡單,只要在MD5的時候加一個稍微復雜點的鹽(比如GUID/UUID),就能極大的提高用戶密碼的安全性。加鹽后的明文=明文+鹽;密文=MD5(加鹽后的明文);以GUID/UUID作為鹽為例,哪怕明文再簡單,加一個32位的鹽,加鹽后的明文也在32位以上了,通過MD5字典來破解是不現實的。如果所有網站都沒有加鹽,黑客只需建一套MD5字典,所有網站都能通用。如果所有的網站都加了鹽,退一萬步講,哪怕鹽也被黑客盜了,也不能用通用的MD5字典,得為每一個拖庫的網站建一個字典。這樣成本會高很多,如果動力不夠,黑客就放棄了。防止拖庫和撞庫的對策有很多,我這里只是分析了其中的一點,並提出了相應的對策。辦法很簡單,相信很多網站也加了鹽,或做了更復雜的操作,但沒有加鹽的網站也很多,要不然就不會經常發生撞庫的事了。盡全力保護用戶的信息安全是每個網站應盡的義務,這樣才對得起用戶對你的信任。一個小小的改變可以讓用戶的密碼更加安全,希望能引起所有網站的重


免責聲明!

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



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