MD5是一種哈希函數,曾一度被認為是非常安全的,并且在國外被廣泛運用。直到王小云教授的研究證明利用MD5算法的磕碰能夠嚴重威脅信息體系安全,因此不得不做很多的重新思考。那么,MD5碰撞后時代,我們常用的MD5加密真的安全嗎?
從技術的角度來說,MD5真的很安全,因為MD5本身是不可逆的,因此沒法解密,除了撞庫這樣的一個方式。在大數據時代,隨意生成幾個經常使用的密碼的MD5密文,然后在百度上搜索md5解密網站,然后把密文復制粘貼進去,隨意一個md5解密可能都可以解密出來。
什么是撞庫
關于撞庫,可能很多人都有所了解了吧,這里簡單說以下它的原理:通過建立大型數據庫,將常用的各種句子密碼等加密成為密文,并存儲在數據庫中;然后拿著密文到數據庫網站查詢,就有可能查到密碼,這是有解密成功的概率,不一定每種密文都能查詢到密碼。
隨著各種加密原文的收集,在龐大的數據中積累了越來越多的大量句子,MD5似乎已不再安全,就像一個post請求,只是你認為他不是明文,他只是阻隔了一部分什么都不知道的人群。但是對于黑客來說,(就算是剛入門的黑客)來說,只要抓住你的請求,數據大概率就會暴露。
日常網站開發,注冊用戶的密碼通常是要求加密的,不然如果數據被竊取,那么用戶的密碼丟失就會對用戶、公司造成可怕的影響。
MD5是經常使用的加密方式,它能夠將任意長度的輸入串通過計算獲得固定長度的輸出,而且在明文相同的狀況下,才能得到相同的密文,這個算法是不可逆的,即使獲得了加密之后的密文,也不可能經過解密算法反算出明文。
你以為這樣就安全了嗎?
舉個例子:用戶經常使用的密碼password,生成的MD5密文就是:5f4dcc3b5aa765d61d8327deb882cf99這是不會變的。這就造成可以使用撞庫解密的風險,網上在線md5解密的網站很多,如:https://md5.cn/。
這樣子使用有風險,那么就需要使用鹽值加密,加入一個隨機鹽,再次去在線md5解密網站嘗試解密,結果失敗了。只要隨機鹽不泄露,那么被解密的風險就降低了。
MD5加密沒有這么安全,那么是不是說MD5就沒有什么用處了呢?話不是這樣說的,對于文件來說碰撞可能容易,但是對于限定長度的密碼或者密文來說,MD5作為高性能高安全的數據簽名算法來說,仍然很實用。