|
discuz注冊(cè)時(shí),會(huì)把密碼按一個(gè)規(guī)則加密。
比如我的密碼是123456
復(fù)制代碼 代碼如下:
echo md5("123456");
會(huì)輸出:
復(fù)制代碼 代碼如下:
e10adc3949ba59abbe56e057f20f883e
而數(shù)據(jù)庫(kù)的值卻為:
復(fù)制代碼 代碼如下:
7839dc9437013b5c11a5d86e9b8350e9
注意到:
有個(gè)叫salt的字段,其值為:d82a35
其實(shí)這是一個(gè)隨機(jī)的字符串。
第一次md5后的值再加上鹽值(salt)再進(jìn)行md5,就是要得到的值了。
試一下
復(fù)制代碼 代碼如下:
echo md5(md5('123456').'d82a35');
這回結(jié)果是:7839dc9437013b5c11a5d86e9b8350e9,是對(duì)的。
在php5.5之前的版本,并沒(méi)有很好的加密機(jī)制。這是個(gè)不錯(cuò)的方式。已經(jīng)大大地加強(qiáng)了密碼的安全性了。
而php5.5中有更為可靠和方便的加密方式。喜歡鉆研的朋友可以了解一下:
password_hash()
http://www.php.NET/manual/zh/function.password-hash.php
php技術(shù):淺談discuz密碼加密的方式,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。