Bcrypt.Net.Verify对假字符串数据返回true

时间:2013-09-23 17:13:16

标签: c# .net bcrypt.net

我正在使用带有salt数据的字符串来使用BCrypt.Net库来隐藏密码。

代码:

string src = Salt + UserName + Key + Password
var hash = Bc.HashPassword(src, 12);

当我尝试使用错误的字符串数据(例如,不同的密码)验证散列数据时,BCrypt.Verify(wrongStr,hash)返回的值为true

任何想法? 有没有String的长度限制?

1 个答案:

答案 0 :(得分:1)

bcrypt返回60个字符串 确保您的文件可以处理

并且您的验证错误,您需要使用布尔值!

string myPassword = "password";
string mySalt = BCrypt.GenerateSalt();
//mySalt == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO"
string myHash = BCrypt.HashPassword(myPassword, mySalt);
//myHash == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO4777l4bVeQgDL6VIkxqlzQ7TCalQvla"


bool doesPasswordMatch = BCrypt.CheckPassword(myPassword, myHash);