如何給MD5加上salt隨機(jī)鹽值
如何加點(diǎn)鹽(salt)?
為了加強(qiáng)MD5的安全性,從而加入了新的算法部分即加鹽值,加鹽值是隨機(jī)生成的一組字符串,可以包括隨機(jī)的大小寫字母、數(shù)字、字符,位數(shù)可以根據(jù)要求而不一樣,使用不同的加鹽值產(chǎn)生的最終密文是不一樣的:
1).首先我們得到的是明文的hash值
2).進(jìn)行計(jì)算獲取MD5明文hash值
3).隨機(jī)生成加鹽值并插入
4).MD5插入加鹽值得到的hash
5).得到最終的密文
看一個(gè)簡(jiǎn)單的加salt函數(shù):
/** * MD5加SALT函數(shù) * by http://www.phpddt.com */ function do_hash($psw) { $salt = 'fdsafagfdgv43532ju76jM'; //定義一個(gè)salt值,最好夠長(zhǎng),或者隨機(jī) return md5($psw . $salt); //返回加salt后的散列 }
注意:
如果你是隨機(jī)生成salt值就得放入數(shù)據(jù)庫,不要用time()
時(shí)間戳啥的,那樣別人不就可以枚舉了嘛,如果你嫌麻煩,可以配置一個(gè)復(fù)雜的salt值,如上,兩種方法各有優(yōu)點(diǎn)。
另一種復(fù)雜點(diǎn)加密方法:
function PassCrypt($ManagerPassword) { $ManagerPassword=md5($ManagerPassword); $Salt=substr($ManagerPassword,-1,3); $ManagerPassword=crypt($ManagerPassword,$Salt); Return $ManagerPassword; }
這樣先把密碼用MD5加密,然后截取其結(jié)果的一段,再用crypt加密,因?yàn)檫@兩個(gè)加密函數(shù)都是單向的,所以就沒有人能破解的了了,而且加密后的最終密碼是13位的,無論誰拿到手都不知道該怎么破解了,在密碼驗(yàn)證時(shí)只需要將原始密碼用加密函數(shù)再加密一編進(jìn)行匹配就行了。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關(guān)文章
在WordPress中創(chuàng)建自定義頁面模板方法詳解
在本文中,我們將學(xué)習(xí)如何在 WordPress 中創(chuàng)建自定義頁面模板,以及我們?nèi)绾螌⒆远x模板分配給 WordPress 中的特定頁面或頁面組,感興趣的朋友跟隨小編一起看看吧2021-09-09解決Fiddler在win7系統(tǒng)下的安全證書問題
今天小編就為大家分享一篇關(guān)于解決Fiddler在win7系統(tǒng)下的安全證書問題,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10npm script 的文件監(jiān)聽和自動(dòng)刷新的命令詳解
文件監(jiān)聽的作用是為了實(shí)現(xiàn)自動(dòng)化,釋放雙手和精力,提高效率,讓開發(fā)者更加關(guān)注于開發(fā)。這篇文章主要介紹了npm script 的文件監(jiān)聽和自動(dòng)刷新,需要的朋友可以參考下2019-06-06