Complete noob. Can you explain this more. if you bcrypt(12345) isn't the result always same ? If the hash varies then what does the inbuilt nonce depend on ?
>> BCrypt::Password.create("hi,mom", :cost => 10)
=> "$2a$10$L/c.1uoZSh3oaU1fLrnYK.yyU4PiJXsIAzN22qnbU41liyLn5/of 2"
>> BCrypt::Password.create("hi,mom", :cost => 10)
=> "$2a$10$3F0BVk5t8/aoS.3ddaB3l.fxg5qvafQ9NybxcpXLzMeAt.nVWn.NO"
>> BCrypt::Password.create("hi,mom", :cost => 10)
=> "$2a$10$VEVmGHy4F4XQMJ3eOZJAUeb.MedU0W10pTPCuf53eHdKJPiSE8sMK"
Despite the pages and pages and pages and pages of conversation about how to select and format "salts", adding random nonces to hashes is not one of the world's great CS problems.Or did you make a mistake and the cost factors are supposed to different ?
The documentation for py-bcrypt ( http://www.mindrot.org/projects/py-bcrypt/) doesn't explain what happens, but shows use is very very easy.
EDIT: current guess is that searching for the salt that was used might be part of what makes it hard.