I've worked with a number of different hashing algorithms in the past and I was under the impression that they were all deterministic.
I just switched some of my code to use BCrypt.Net and I have to admit I was completely stumped when all of my comparison tests failed.
After looking for errors in my test for an embarrassing amount of time I realized that my assumption that the hashes are deterministic was completely incorrect. There is a verify method which works and it was easy enough to fix the code but I'd like to understand what is going on a little bit better.
Is it salting the values internally or is something else going on?
- Please note I am salting this in my real code - this is just a test