簡體   English   中英

使用BCrypt.Net模擬設計密碼加密?

[英]Using BCrypt.Net to simulate Devise Password Encryption?

我正在嘗試完成一個非常簡單的任務。 我有一台正在運行的服務器,該服務器上運行着一個MySQL實例,我的rails應用程序用來填充該實例。 不幸的是,我曾經使用devise來進行所有用戶管理,但是現在有點卡住了。

因此,我有一個正在編寫的C#應用​​程序。 我只想通過已經存在的MySQL數據庫驗證用戶和密碼。

現在這就是我所知道的(或認為我知道的):

Devise使用Bycrypt對密碼進行單向加密,然后將其存儲在數據庫中。 問題是我不確定如何正確實施bycrypt以產生正確的加密密碼進行驗證。

這是我當前生成哈希密碼的過程:

string pass = password.Text;
string mySalt = BCrypt.Net.BCrypt.GenerateSalt();
string myHash = BCrypt.Net.BCrypt.HashPassword(pass, mySalt);

我認為這一定是錯誤的。 我只是不太了解我在這里缺少什么或做錯了什么。 我將繼續四處搜尋,如果我想出答案,我會回發。 另外,如果我違反了任何編輯規則或其他規定,也請告訴我,以便盡快正確解決。

在此先感謝您的時間 :)

我認為您的問題是,每次對密碼進行哈希處理以針對數據庫進行驗證時,都會生成Salt。 您需要使用與最初生成密碼時相同的Salt值。

好的,所以我的問題實際上很愚蠢,但是對於其他與我一樣具有邏輯謬誤的人,我將進行解釋。

默認情況下,Devise使用BCrypt進行加密,這通常是由Blowfish完成的,當他們這樣做時,他們總是使用BCrypts生成鹽函數,該函數為每次密碼哈希生成隨機鹽。

由於隨機鹽的存在,BCrypt包含了一個稱為Verify(password,hashed_pa​​ss)的實用程序函數。 此功能允許比較未加密密碼和散列密碼的測試。 漂亮又非常有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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