title: Can someone explain how BCrypt verifies a hash?
body: <p>I'm using C# and BCrypt.Net to hash my passwords.</p>
  
  <p>For example:</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>How is BCrypt verifying the password with the hash if it's not saving the salt anywhere. The only idea I have is that it's somehow appending the salt at the end of the hash. </p>
  
  <p>Is this a correct assumption?</p>