簡體   English   中英

在不存儲鹽的情況下驗證BCrypt.Net密碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM