第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

為什么我每次的加密后的密碼都不同。就拿密碼“b”來說,我每次存進(jìn)mongodb的密碼都是不同的hash,這次為什么???對嗎?

正在回答

1 回答

這就是加鹽的過程,同樣的密碼,最終生成的 hash 是不同的,具體比對則是通過 bcr


看源碼, save 的時(shí)候:

bcrypt.genSalt(SALT_WORK_FACTOR,?function(err,?salt)?{
????if?(err)?return?next(err)
????bcrypt.hash(user.password,?salt,?function(err,?hash)?{
??????if?(err)?return?next(err)

??????user.password?=?hash
??????next()
????})
??})

首先造鹽,拿到一個(gè) salt ,然后混合到 password ,生成最終的 hash,拿 aaabbb 這個(gè)原始密碼為例,第一次 save 的時(shí)候,生成的 salt 和 hash 分別是


$2a$10$qblANrkDqjdO87voGXP66O

$2a$10$qblANrkDqjdO87voGXP66OU9R.vUq8c08ZwPhgEycLpQ1wJ7V7Anm


第二次則是?


$2a$10$5Co.ZwYWLrXofKa4PbnRde

$2a$10$5Co.ZwYWLrXofKa4PbnRdegAd7NpHKAYsvEfJ0bxQjqMGoJEvaBKq


hash 之所以不同就是 由于 鹽的不同,這樣極大的增強(qiáng)了密碼的強(qiáng)度,使得反向破解變得極為困難,但同時(shí)注意比對 salt 可以發(fā)現(xiàn),生成的 hash 中就包含了摻進(jìn)去的 鹽,以第二次為例,名詞我也不知道如何翻譯最佳,把 hash 拆解后:


Format (identifier): 2a

Cost parameter: 10

Salt: ?5Co.ZwYWLrXofKa4PbnRde

Hash digest: ?gAd7NpHKAYsvEfJ0bxQjqMGoJEvaBKq


至于如何 ?compare 就交給?bcrypt 去做了,更多了解可以看這個(gè):https://github.com/ademarre/binary-mcf

2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Kvkens 提問者

感謝老師的耐心回復(fù),我已經(jīng)大概了解了加鹽!
2014-10-13 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
node建站攻略(二期)——網(wǎng)站升級
  • 參與學(xué)習(xí)       51926    人
  • 解答問題       422    個(gè)

幫助你深入前后端開發(fā)留下的迷惑,為進(jìn)一步自學(xué)打下基礎(chǔ)

進(jìn)入課程
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號