BCrypt の C# 実装の 1 つを使用して、パスワードをハッシュし、SQL データベースに格納します。ただし、ハッシュ文字列に対して検証に戻ると、BCrypt は比較対象のデータベースとは異なるハッシュを生成します。因子と同様に、塩は目に見えて同じです。
これが私が知っていることです
$2a$12$vF/1s3MqIzHwnDshyzH/rOYUelfrj4UWv./vzWqk4o2K0uwhix7W は実際には「Qwerty123」であり、[nvarchar] (200) に初期化された列に格納されます。
実装に応じて BCrypt.Verify() または BCrypt.CheckPassword() を使用する場合、比較を行う直前までトレースし、前述のハッシュと比較しようとしているハッシュは $2a$12$vF です。 /1s3MqIzHwnDshyzH/rOKVrePZSXFXaIpDv6.IPkbPEoOxZgSEe
よく見ると、塩と因子の部分が同じであることがわかります。何がこれを引き起こしているのでしょうか?
私が取り組んでいる明示的な実装は、ここにありますhttp://bcrypt.codeplex.com/
私の質問は、ASP.NET MVC 3 アプリ、BCrypt.CheckPassword の失敗に関連している可能性があります