我們在php網站開發中用的加密技術就是MD5,那么采用MD5加密的算法能破解嗎或者md5加密可逆嗎?我們先來看看常用的兩種php數據加密技術。
PHP數據加密技術
Md5()和Sha1()加密算法是單向的,不存在逆向函數得到原來的明文數據
算法調用:
string md5 ( string $str [, bool $raw_output = false ] )
string Sha1 ( string $str [, bool $raw_output = false ] )
參數
str
原始字符串。
raw_output
如果可選的 raw_output 被設置為 TRUE,那么 MD5 報文摘要將以16字節長度的原始二進制格式返回。
返回值
MD5()以 32 字符十六進制數字形式返回散列值。
Sha1()以 40 字符十六進制數字形式返回散列值。
<?php
$p = "123456";
echo md5($p);
?>
它的輸出結果如下:
e10adc3949ba59abbe56e057f20f883e
但是這樣使用md5()函數是非常不安全的,如此,大家可以到百度上搜索md5解密,會發現存在解密的網站:
如此可見直接向上面那樣使用md5()函數是不安全的。雖然md5算法是不可逆的,但是因為它對同一個字符串計算的結果是唯一的,所以一些人可能會使用“字典攻擊”的方式來攻破md5加密的系統。這雖然屬于暴力解密,卻十分有效,因為大多數系統的用戶密碼都不會很長所以我們的md5編碼成的最終數據可以通過一些網站破解:
很顯然,被破解了,直接使用md5()這個算法是不夠復雜的,然后代碼修改如下:
<?php
$p = "123456";
echo md5(md5($p).md5($p));
?>
打印出的結果:
efd52a4f82c94f80f13671ebd7cd2a6d
到網站破解:
很明顯,他的結果是錯誤的,我們的密碼是123456而不是零。
我們在一個md5()函數的基礎上可以通過多層md5()算法進行加密,因為他是單向的,也許大家疑惑為什么網站能夠破解,其實網站的就是暴力破解,他們是不斷的保存各種編碼和密碼然后再進行匹配最終得到密碼。
具體MD5破解方法請參考:php md5解密代碼分享(附接口,親測可用)
相關文章:
php md5可以解密嗎?
php md5加密解密算法和工具(附代碼)
MD5加密工具
以上就是php md5加密可以破解嗎?的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答