我在我的应用程序中使用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 ==
问题是您的salt是Base-64编码的字符串,但是您需要其二进制值:
var salt = new Buffer('7PJnpX5okg9ET2pZ2m5eyg==', 'base64');
当您使用它时,hashedPassword1
将与您已有的匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句