MairDB加密函數(shù)(五)

ENCRYPT加密

ENCRYPT(str, salt);使用UNIX crypt()函數(shù),用關(guān)鍵詞salt加密字符串str

Salt可以是任意字母、數(shù)字、或是字母或數(shù)字的組合,但必須是隨機(jī)產(chǎn)生的,每個(gè)用戶的Salt 都不一樣,用戶注冊(cè)的時(shí)候,數(shù)據(jù)庫中存入的不是明文密碼,也不是簡單的對(duì)明文密碼進(jìn)行散列,而是MD5( 明文密碼 + Salt),也就是說:

1.MD5('123' + '1ck12b13k1jmjxrg1h0129h2lj') = '6c22ef52be70e11b6f3bcf0f672c96ce'

2.MD5('456' + '1h029kh2lj11jmjxrg13k1c12b') = '7128f587d88d6686974d6ef57c193628'

當(dāng)用戶登陸的時(shí)候,同樣用這種算法就行驗(yàn)證。

由于加了Salt,即便數(shù)據(jù)庫泄露了,但是由于密碼都是加了Salt 之后的散列,壞人們的數(shù)據(jù)字典已經(jīng)無法直接匹配,明文密碼被破解出來的概率也大大降低。

是不是加了Salt 之后就絕對(duì)安全了呢?當(dāng)然沒有!壞人們還是可以他們數(shù)據(jù)字典中的密碼,加上我們泄露數(shù)據(jù)庫中的Salt,然后散列,然后再匹配。但是由于我們的 Salt 是隨機(jī)產(chǎn)生的,假如我們的用戶數(shù)據(jù)表中有 30w 條數(shù)據(jù),數(shù)據(jù)字典中有 600w 條數(shù)據(jù),壞人們?nèi)绻胍耆采w的壞,他們加上Salt后再散列的數(shù)據(jù)字典數(shù)據(jù)量就應(yīng)該是3000006000000 = 1800000000000,一萬八千億啊,干壞事的成本太高了吧。但是如果只是想破解某個(gè)用戶的密碼的話,只需為這 600w 條數(shù)據(jù)加上 Salt,然后散列匹配??梢?Salt 雖然大大提高了安全系數(shù),*但也并非絕對(duì)安全。**

實(shí)際項(xiàng)目中,Salt 不一定要加在最前面或最后面,也可以插在中間嘛,也可以分開插入,也可以倒序,程序設(shè)計(jì)時(shí)可以靈活調(diào)整,都可以使破解的難度指數(shù)級(jí)增長。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容