◆曾詩亮 周琪云
MD5加隨機數算法的研究與應用
◆曾詩亮 周琪云
(江西師范大學(南昌)計算機信息工程學院 江西 330022)
隨著互聯網的不斷發(fā)展,MD5算法被廣泛地應用在Web程序中用于加密。本文針對MD5算法可通過枚舉法破解出原密碼的缺陷,提出了一種改進的MD5算法,即MD5加隨機數算法,并應用在Web程序中,經實驗結果表明,MD5加隨機數算法提高了用戶數據的安全性。
MD5算法;MD5算法改進;Web程序
隨著“互聯網+”的迅速發(fā)展,網絡安全變得越來越重要,特別是保護Web程序上用戶數據的安全。文獻[5]分析了MD5算法在用戶口令認證中的安全隱患,給出了用戶口令認證應用中如何提高MD5算法安全性的措施和方法。文獻[6]基于MD5算法理論,用ASP對MD5算法在WEB程序中的安全應用進行了探討。文獻[7]介紹了MD5算法在身份鑒別中的應用,分析MD5算法的不足并提出了解決方法。怎樣改進MD5算法,保障Web程序用戶數據的安全,防止用戶信息泄露,引起了人們的思考。
MD5算法的密碼和加密后的密文是一一對應的,黑客可以收集密文和對應的密碼形成一張表。當獲取了數據庫的密文之后,通過枚舉法匹配密文即可推出相應的密碼。密文和密碼對應的表如表1所示。
表1 密文和密碼對應的表
比如每次密碼123456經過MD5算法加密后都是e10adc3949ba59abbe56e057f20f883e,但是加上隨機數,即123456 +隨機數,MD5值不就不一樣了。這個隨機數也會保存在數據庫中,不同的用戶,隨機數是不一樣的。MD5加隨機數算法流程圖如圖1所示。
圖1 MD5加隨機數算法流程圖
以Java web程序為例探討MD5加隨機數算法在Web程序中的應用,服務器端通過javaWeb的servlet處理來自網頁的請求,網頁是JSP頁面。加密過程有以下四步:①獲取前端頁面?zhèn)鱽淼拿艽a;②生成隨機數;③選擇MD5算法;④調用MD5加隨機數算法生成加密后的密文,代碼如圖2所示。
用戶登錄時需要進行密碼校驗,所以生成的隨機數和算法加密后的密文都要放在數據庫中,如圖3所示。
圖2 MD5加隨機數算法代碼
圖3 隨機數和加密后的密文存放在數據庫中
通過在線MD5解密網站[8]進行實驗。當直接使用MD5算法進行加密時,在1.1中圖1的密文都可以解密出原密碼,如圖4所示。
圖4 MD5算法解密出原密碼
當使用MD5加隨機數算法進行加密時,在線MD5解密網站無法解密出原密碼,如圖5所示。
本文提出了一種改進的MD5算法,即MD5加隨機數算法,通過添加隨機數,使用戶數據即使在被黑客攻擊獲取的情況下,也無法通過密文破解出原密碼。然后在Web程序中應用了MD5加隨機數算法。最后通過MD5算法、MD5加隨機數算法實驗結果的對比,表明MD5加隨機數算法增強了用戶數據在網絡中的安全性。
[1]李夏夢. IDEA子密鑰擴展算法及其與MD5混合加密算法的研究[D].中北大學,2017.
[2]譚健.基于擬態(tài)計算機的全流水架構MD5算法及口令恢復研究[D].鄭州大學,2017.
[3]李森.MD5算法的分析與研究[D].杭州電子科技大學,2017.
[4]史書源.基于MD5的電信運營商BSS系統(tǒng)安全性應用研究[D].遼寧工程技術大學,2016.
[5]劉洪民,印幫輝.MD5算法在用戶口令認證中的應用[J].網絡安全技術與用,2014(05):37+40.
[6]楊懷,宋俊芳,王聰華.淺談MD5加密算法在網絡安全中的應用[J].網絡安全技術與應用,2018(09):40.
[7]呂喆.MD5身份鑒別及在線房屋交易系統(tǒng)的應用[J].網絡安全技術與應用,2008(08):44-46.
[8]https://www.cMD5.com/.