C# Bcrypt 示範

bcrypt 是一個用於儲存密碼的哈希(Hash)演算法,和 MD5 相比 bcrypt 速度更慢也更安全,並且 bcrypt 也內建加鹽(Salt)。

安裝

先使用 NuGet 安裝 BCrypt.Net-Next 套件,或是使用 .NET CLI 執行以下指令安裝
	
dotnet add package BCrypt.Net-Next
    

最簡單範例

    
string hashPassword = BCrypt.Net.BCrypt.HashPassword("password");
Console.WriteLine(hashPassword);
// $2a$11$gcZfP8GJfoYaVx8a/CJFC.JGP2LjHV1wsruuGngBpvrxH6lCtOf8W
    

產生自訂 Salt

    
var salt = BCrypt.Net.BCrypt.GenerateSalt(10);
Console.WriteLine(salt);
// $2a$10$jOSOGMCYiXvNn8fCbi5vd.

var hashPassword = BCrypt.Net.BCrypt.HashPassword("password", salt);
Console.WriteLine(hashPassword);
// $2a$10$jOSOGMCYiXvNn8fCbi5vd./aaRfkNyZM3LyM5MLxTKXTsWzWNdAsK

    

驗證

    
string hashPassword = "$2a$10$jOSOGMCYiXvNn8fCbi5vd./aaRfkNyZM3LyM5MLxTKXTsWzWNdAsK";
var verify = BCrypt.Net.BCrypt.Verify("password", hashPassword);
Console.WriteLine(verify); // True
    



參考資料:
GitHub - BcryptNet/bcrypt.net

留言