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






