我在我的应用程序中使用Passport.js.
我正在使用这种盐:
7PJnpX5okg9ET2pZ2m5eyg==
为此,哈希密码为:
ZKRdKDloN37k9Bt070YMZkrqZw+e5IsFx/mdir3+QAEk1dDSp8+q1YJ57GvAQKU5dWIit55eNgWEcI4hd1N7vw==
现在,当用户登录时,我正在使用此代码:
var userPass = 'testtest'
var salt = "7PJnpX5okg9ET2pZ2m5eyg==";
var hashedPassword1 = crypto.pbkdf2Sync(userPass, salt, 10000, 64).toString('base64');
hashedPassword1
不同:
Gav+sH1tUG4xlBZOupBy+hcPMGbg5LexzONJuthJxnsY9/WvX17i2d9n6L292bXVsndHbcJfC2KeY3SL
IRBjEw ==
答案 0 :(得分:2)
问题是你的salt是Base-64编码的字符串,但你需要它的二进制值:
var salt = new Buffer('7PJnpX5okg9ET2pZ2m5eyg==', 'base64');
使用时,hashedPassword1
将与您已有的匹配。