如果密碼加鹽再做hash的話,伺服器端是不是應該存有明文密碼才能做驗證?

時間 2021-06-09 14:52:05

1樓:玄星

貌似在再次登陸時,如果客戶端本身是加鹽上傳,服務端還真的只有儲存明文password或者第一輪的不加鹽的hash結果才能驗證。

比如註冊時,伺服器不加鹽儲存password的第一輪hash, 設為H(pw)

使用者登陸時,客戶端先直接hash一輪,然後(再隨機產生乙個salt)加鹽hash一次,記作 H(salt, H(pw)),最後,拿到伺服器給的驗證碼再算一次hash, H(capcha, H(salt, H(pw)))。接下來,把這個 H(capcha, H(salt, H(pw)))和對應的的salt一起傳給伺服器。

這樣,伺服器有了所有的資訊,就可以驗證。

要MitM攻破的話,需要拿到中間的計算結果H(salt, H(pw))和碰對伺服器此次的驗證碼。

木馬和釣魚就暫不考慮了。

salt主要是大大增加了彩虹表的長度,乙個salt就得算一張……

一般長度為6-13位含字母數字的、不加鹽的password對應的彩虹表就有5G以上。

每個不同的鹽都得有這麼大一張表來查……

加鹽密碼儲存的最通用方法是?

資料庫存上salt和hash,每當使用者註冊,隨機生成salt,hash md5 password salt 登入的時候驗證md5 input salt 和hash是否相等即可 exiledkingcc 目前最高票的方案太麻煩了,而且自己搞金鑰協商這些,並且把salt發到client,感覺不怎麼靠譜...

如果可以重來,哪些事情你不會再做?

晴天 以前太在意別人的眼光,總是會想自己做成這樣別人會怎麼評價自己。由於在意別人而忽略了自己的感受,忽略了自己真正應該關注的東西。 如果可以重來,不想遇到那個只看重成績的小學老師,高中一定努力學習,大學不會報考那個學校,不會去離家那麼遠的地方,更不會衝動的去表白,也不會在被拒絕後還一直想他 南宮詡 ...

如果有來世,你還會選擇再做人嗎?

大蛋 不會,神經病,還當人?人太難了,你想 3歲幼兒園 7歲一年級 18歲高考,上大學 22歲畢業出去工作 65歲畢業 你告訴我這這樣的生活,再來一次?在我們平均的一生中5分之一的時間都在工作!世界上,沒有乙個物種是那麼慘的!你可能會說,你只要投胎好就行!但目前全世界是有百分之5的人有100萬美金!...