discuz注冊時,會把密碼按一個規則加密。
比如我的密碼是123456
復制代碼 代碼如下:
echo md5("123456");
會輸出:
復制代碼 代碼如下:
e10adc3949ba59abbe56e057f20f883e
而數據庫的值卻為:
復制代碼 代碼如下:
7839dc9437013b5c11a5d86e9b8350e9
注意到:
有個叫salt的字段,其值為:d82a35
其實這是一個隨機的字符串。
第一次md5後的值再加上鹽值(salt)再進行md5,就是要得到的值了。
試一下
復制代碼 代碼如下:
echo md5(md5('123456').'d82a35');
這回結果是:7839dc9437013b5c11a5d86e9b8350e9,是對的。
在php5.5之前的版本,並沒有很好的加密機制。這是個不錯的方式。已經大大地加強了密碼的安全性了。
而php5.5中有更為可靠和方便的加密方式。喜歡鑽研的朋友可以了解一下:
password_hash()
http://www.php.net/manual/zh/function.password-hash.php