如何給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ù)庫(kù),不要用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ù)都是單向的,所以就沒(méi)有人能破解的了了,而且加密后的最終密碼是13位的,無(wú)論誰(shuí)拿到手都不知道該怎么破解了,在密碼驗(yàn)證時(shí)只需要將原始密碼用加密函數(shù)再加密一編進(jìn)行匹配就行了。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
win7/win10+vs2015+pcl1.8.0配置方案詳解
這篇文章主要介紹了win7/win10+vs2015+pcl1.8.0詳細(xì)配置方案,本文通過(guò)圖文并茂的形式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
網(wǎng)站被等惡意鏡像的解決、反制措施詳細(xì)教程
這篇文章主要介紹了網(wǎng)站被等惡意鏡像的解決、反制措施詳細(xì)教程,需要的朋友可以參考下2016-10-10
VSCode實(shí)現(xiàn)文件嵌套功能的完全指南
你是否厭倦了在VSCode中面對(duì)滿屏的配置文件、測(cè)試文件或編譯產(chǎn)物?是否曾因查找關(guān)聯(lián)文件而頻繁滾動(dòng)資源管理器?**文件嵌套(File?Nesting)功能正是解決這一痛點(diǎn)的利器!本文將手把手教你如何通過(guò)VSCode的虛擬路徑管理技術(shù),需要的朋友可以參考下2025-04-04
VSCode設(shè)置默認(rèn)瀏覽器打開的兩種方式
在使用vscode編輯器的時(shí)候,如果我們不設(shè)置默認(rèn)瀏覽器,那么直接打開的是IE瀏覽器,在進(jìn)行頁(yè)面調(diào)試的時(shí)候無(wú)疑是有點(diǎn)麻煩的,這篇文章主要給大家介紹了關(guān)于VSCode設(shè)置默認(rèn)瀏覽器打開的兩種方式,需要的朋友可以參考下2023-09-09
關(guān)于圖片存儲(chǔ)格式的整理(BMP格式介紹)
BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序。由于BMP文件格式是Windows環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標(biāo)準(zhǔn),因此在Windows環(huán)境中運(yùn)行的圖形圖像軟件都支持BMP圖像格式2016-01-01

