2014-02-06 16 views
2

passport.js困難,我在我的應用程序中使用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

我不明白:'hashedPassword1'是完全一樣的。 – robertklep

+0

對不起,先生hashedPassword1即將到來像這樣Gav + sH1tUG4xlBZOupBy + hcPMGbg5LexzONJuthJxnsY9/WvX17i2d9n6L292bXVsndHbcJfC2KeY3SL IRBjEw == – sergioramosiker

+0

而這就是生成密碼哈希的代碼? – robertklep

回答

2

的問題是,你的鹽是Base64編碼字符串,但你需要它的二進制值:

var salt = new Buffer('7PJnpX5okg9ET2pZ2m5eyg==', 'base64'); 

當您使用,hashedPassword1將你匹配一個已經有。

相關問題