使用BCrypt的C#实现之一来哈希密码并将它们存储到SQL数据库中。但是,当我返回验证的哈希字符串BCrypt生成一个不同的哈希比在数据库中比较。这些盐显然与因子一样。给定相同的盐,字符串和因子,BCrypt生成不同的哈希
以下是我知道
$ 2A $ 12 $室颤/ 1s3MqIzHwnDshyzH/rOYUelofrj4UWv。/ vzWqk4o2K0uwhix7W实际上是 “Qwerty123” 及其存储在被初始化为[nvarchar的](200)的柱。
当我根据实现使用BCrypt.Verify()或BCrypt.CheckPassword()时,我会跟踪它,直到它进行比较,并且它将与前面提到的比较的哈希值为$ 2 a $ 12 $ vF/1s3MqIzHwnDshyzH/rOKVRePZSXFXaIpDv6.IPkbPEoOxZgSEe
如果您仔细看看,可以看到盐分和因子部分是相同的。任何想法可能会造成这种情况?
的明确落实我与可以在这里http://bcrypt.codeplex.com/
我的问题可能与ASP.NET MVC 3 app, BCrypt.CheckPassword failing
如果您在一台服务器上反复BCrypt相同的字符串,您是否继续获得相同的加密版本? – Brad
是使用相同的字符串和盐生成的哈希每次都是相同的。 – GRush