MD5是消息摘要算法的一種,它和SHA,HMAC是消息摘要算法的主要代表,其前身有MD2,MD3,MD4算法。
消息摘要算法又稱為散列算法,其不可破解的核心在于散列函數(shù)的單向性,即可以通過散列函數(shù)得到結(jié)果,卻不可能通過結(jié)果反推出其原始信息。這是消息摘要算法的安全性根本所在。如果用戶輸入的密碼是123456789,則會得到25f9e794323b453885f5181f1b624d0這樣的結(jié)果;如果有人拿到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,他是不可能反推出密碼123456789的。
但是,總所周知的是,MD5已經(jīng)被我國山東大學(xué)王小云教授攻破了。他是怎么做到這不可能的事呢?當(dāng)然不是反推,而是使用的碰撞算法,具體來說就是,拿到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,用多種精心設(shè)計的字符串去試試,總有一個字符串經(jīng)MD5加密后能得到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,這個字符串也許是真實(shí)密碼,也是是別的,但它加密后可以得到和123456789加密后一樣的效果。這就意味著,你給自己設(shè)定的密碼,別人通過其他密碼也可能通過驗證!
其原因還是在于散列函數(shù),不同的輸入通過散列函數(shù)可能得到同一結(jié)果,雖然這個可能性較小。王教授成果的意義在于,以前號稱用全世界所有計算機(jī)算一百年不能做到的,用他的辦法用一臺普通微機(jī)在數(shù)個小時內(nèi)就能做到。這個很了不起,諸位如果有意可以去當(dāng)他的研究生,這樣就知道是怎么做的了。
那么,MD5還有存在的價值嗎。當(dāng)然有,因為破解者要破解成功有三個必要條件,一,知道算法;二,知道密鑰;三,有大量數(shù)據(jù)供測試。如果把幾種其它算法和MD5混合,破解者就容易困惑,再加上時間限制,破解也不是件容易的事。最后,還有理論上不可能破解的量子密碼,如果它能實(shí)用化,則能達(dá)到真正意義上的不可破解。
消息摘要算法又稱為散列算法,其不可破解的核心在于散列函數(shù)的單向性,即可以通過散列函數(shù)得到結(jié)果,卻不可能通過結(jié)果反推出其原始信息。這是消息摘要算法的安全性根本所在。如果用戶輸入的密碼是123456789,則會得到25f9e794323b453885f5181f1b624d0這樣的結(jié)果;如果有人拿到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,他是不可能反推出密碼123456789的。
但是,總所周知的是,MD5已經(jīng)被我國山東大學(xué)王小云教授攻破了。他是怎么做到這不可能的事呢?當(dāng)然不是反推,而是使用的碰撞算法,具體來說就是,拿到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,用多種精心設(shè)計的字符串去試試,總有一個字符串經(jīng)MD5加密后能得到25f9e794323b453885f5181f1b624d0這樣的結(jié)果,這個字符串也許是真實(shí)密碼,也是是別的,但它加密后可以得到和123456789加密后一樣的效果。這就意味著,你給自己設(shè)定的密碼,別人通過其他密碼也可能通過驗證!
其原因還是在于散列函數(shù),不同的輸入通過散列函數(shù)可能得到同一結(jié)果,雖然這個可能性較小。王教授成果的意義在于,以前號稱用全世界所有計算機(jī)算一百年不能做到的,用他的辦法用一臺普通微機(jī)在數(shù)個小時內(nèi)就能做到。這個很了不起,諸位如果有意可以去當(dāng)他的研究生,這樣就知道是怎么做的了。
那么,MD5還有存在的價值嗎。當(dāng)然有,因為破解者要破解成功有三個必要條件,一,知道算法;二,知道密鑰;三,有大量數(shù)據(jù)供測試。如果把幾種其它算法和MD5混合,破解者就容易困惑,再加上時間限制,破解也不是件容易的事。最后,還有理論上不可能破解的量子密碼,如果它能實(shí)用化,則能達(dá)到真正意義上的不可破解。