我們在php網站開發中使用的加密技術就是MD5,那麼採用MD5加密的演算法能破解嗎或md5加密可逆嗎?讓我們先來看看常用的兩種php資料加密技術。
PHP資料加密技術
#Md5()和Sha1()加密演算法是單向的,不存在反向函數得到原來的明文資料
演算法呼叫:
string md5 ( string $str [, bool $raw_output = false ] )
string Sha1 ( string $str [" bool $raw_output ( string $str [##bool $.
參數#str
原始字串。
raw_output
如果可選的 raw_output 設定為 TRUE,那麼 MD5 報文摘要將以16位元組長度的原始二進位格式傳回。
傳回值
#MD5()以 32 字元十六進位數字形式傳回散列值。
Sha1()以 40 字元十六進位數字形式傳回雜湊值。
#$p = "123456";
#echo
#md5
$p);
## ?>它的輸出結果如下:
e10adc3949ba59abbe56e057f20f883e
###但這樣使用md5()函數是非常不安全的,如此,大家可以到百度上搜尋md5解密,會發現有解密的網站:############################ ######################## #########
如此可見直接向上面那樣使用md5()函數是不安全的。雖然md5演算法是不可逆的,但因為它對同一個字元字串計算的結果是唯一的,所以有些人可能會使用「字典攻擊」的方式來攻破md5加密的系統。這雖然屬於暴力解密,卻十分有效,因為大多數系統的使用者密碼都不會很長所以我們的md5編碼成的最終資料可以透過一些網站破解:
#
很顯然,被破解了,直接使用md5()這個演算法是不夠複雜的,然後程式碼修改如下:
$p
#= "123456";echo md5(
md5($p ).
md5
(#$p));
#?>
#列印出來的結果:
efd52a4f82c94f80f13671ebd7cd2a6d
#很明顯,他的結果是錯的,我們的密碼是123456而不是零。
我們在一個md5()函數的基礎上可以透過多層md5()演算法進行加密,因為他是單向的,也許大家疑惑為什麼網站能夠破解,其實網站的就是暴力破解,他們是不斷的保存各種編碼和密碼然後再進行匹配最終得到密碼。
######特定###MD5破解方法###請參考:###php md5解密程式碼分享(附接口,親測可用)######### ######相關文章:###############php md5可以解密嗎?##############php md5加密解密演算法和工具(附程式碼)#######以上是php md5加密可以破解嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!