Кто-нибудь может объяснить, как BCrypt проверяет хэш?

Я использую C # и BCrypt.Net для хеширования моих паролей.

Например:

string salt = BCrypt.Net.BCrypt.GenerateSalt(6);
var hashedPassword = BCrypt.Net.BCrypt.HashPassword("password", salt);

//This evaluates to True. How? I'm not telling it the salt anywhere, nor
//is it a member of a BCrypt instance because there IS NO BCRYPT INSTANCE.
Console.WriteLine(BCrypt.Net.BCrypt.Verify("password", hashedPassword));
Console.WriteLine(hashedPassword);

Как BCrypt проверяет пароль с помощью хеша, если он нигде не сохраняет соль. Единственное, что у меня есть, это то, что он каким-то образом добавляет соль в конец хэша.

Это правильное предположение?

27
задан Michael La Voie 11 April 2011 в 20:45
поделиться