2016-12-03 6 views
0

Scryptとhashingをセットアップしました.KDFはうまく動作します。"Error"だけでverifyKdfでScryptが失敗する

しかし、私が試みるときはいつでもverifyKdf()私はエラーが発生します。

return scryptNative.verifySync(args [0]、args [1]); Object.verifyKdfSync(/home/arc/Desktop/scrypt-test/node_modules/scrypt/index.js:331:25)

それをハッシュする私のコードで ^

エラー

。その後、

// a promise chain... 

.then(() => scrypt.kdf(newPassword, scryptParameters)) 
.then(hashedPassword => { 

    user.hashedPassword = hashedPassword.toString('base64') 

    resolve(store.save(user.id, user)) 

}) 

は確認します(ここでは catch()に陥ると errシンプルに "エラー" が含まれている)問題が​​が使用されていることである

scrypt.verifyKdf(user.hashdPassword, enteredPassword) 
    .then(result => { 
      if (result) return resolve(user) 
      else return reject('Wrong password') 
    }) 
    .catch(err => { 
      console.log('scrypt verify failed: ', err) 
      return reject('Internal Error') 
    }) 

答えて

1

。これ自体は問題ではありませんが、バッファに戻す必要があります。

それはnew Buffer(/* Password */ , 'base64')を使用して、次のようになります解決するには、次の代わりに、base64hexを使用した場合

scrypt.verifyKdf(new Buffer(user.hasdPassword, 'base64'), password) 

このソリューションは、同様に動作します。

関連する問題