C# Bcrypt.Net.Verify在假字符串数据上返回true

C# Bcrypt.Net.Verify在假字符串数据上返回true,c#,.net,bcrypt.net,C#,.net,Bcrypt.net,我正在使用一个包含salt数据的字符串来使用BCrypt.Net库散列密码 代码: 当我试图用错误的字符串数据(例如,不同的密码)验证散列数据时,BCrypt.verify(errorstr,hash)返回的值是true 有什么想法吗? 有任何字符串的长度限制吗?bcrypt返回一个60字符的字符串 确保你的档案可以处理 如果您的验证错误,则需要使用布尔值 string myPassword = "password"; string mySalt = BCrypt.GenerateSalt();

我正在使用一个包含salt数据的字符串来使用BCrypt.Net库散列密码

代码:

当我试图用错误的字符串数据(例如,不同的密码)验证散列数据时,
BCrypt.verify(errorstr,hash)
返回的值是
true

有什么想法吗?
有任何字符串的长度限制吗?

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);
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);