[英]Validating a BCrypt.Net password without storing the salt?
因此,我希望在正在設計的網站上實現登錄表單,雖然在保存密碼到數據庫之前我已經擁有密碼salt和hash,但我仍在努力地讓用戶登錄,因為鹽沒有被使用已保存。
我曾與某人談過,他們建議我可以使用這種加密方法而無需節省費用,但是我不知道這怎么可能。
我確實問過那個人,他給我發了一些代碼給我,但不幸的是它被發送到了我的工作電子郵件地址,我忘了把它寄回家了。
因此,我使用以下命令將用戶放入數據庫:
string pwdToHash = userDetails.PassWord;
string hashToStoreInDatabase = BCrypt.Net.BCrypt.HashPassword(pwdToHash, BCrypt.Net.BCrypt.GenerateSalt(12));
現在登錄:
string mySalt = BCrypt.Net.BCrypt.GenerateSalt(12);
string myHash = BCrypt.Net.BCrypt.HashPassword(PassWord);
bool doesPasswordMatch = BCrypt.Net.BCrypt.Verify(myHash, mySalt);
現在我知道我正在用部分代碼中的日志生成新的鹽,但是如果我不保存鹽,那么我怎么知道它是什么?
我會被這個建議帶到花園小徑上嗎,還是不加鹽就可以嗎?
干杯
可以放鹽。 但是,如果您確實不這樣做,則可以使用用戶獨有的一條信息在運行時進行計算。 這樣使用的東西可以是他們的帳戶創建日期,既可以是紀元也可以是紀元。
感謝您的輸入,但我知道我在做什么錯
我在創建密碼時對密碼進行了鹽化和哈希處理,但是在嘗試登錄時卻生成了一個新哈希,因此它始終返回true ... doh!
我現在在注冊時使用創建的哈希,並對照他們輸入的密碼進行驗證。 現在都在工作。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.