PHP 增加 md5 安全性

一般在儲存密碼資訊時,我們都會使用 md5 ( 加密演算法 ),來取得一個不可逆的字串。

由於是不可逆,所以通常用來存密碼,當要比對時,再將輸入的欄位 md5 後再比對儲存在資料庫或程式中的 md5 字串,因為我們無法將該字串還原。


$a = "1";
echo md5($a);
echo "<br />";
$b = 1;
echo md5($b);
echo "<br />";

不管是字串的1或是數字的1,所得到的編碼都是相同的

c4ca4238a0b923820dcc509a6f75849b
c4ca4238a0b923820dcc509a6f75849b

另外,我們也可以在值的前後方加上自訂的字串、數字後,再進行 md5 編碼,這會更安全


$salt1 = "ben";
$salt2 = "smalldl";

echo md5($salt1.$a.$salt2);
echo "<br />";

一般而言加入的名稱為 Salt ( 鹽 )

2191f87a010fb418a66527f1374fb333

從結果來看,完全看不出來,這大大的增加了「強制破解」的難度