2017-04-09 11 views
1

何らかの理由によりbcrypt.hashメソッドがハングアップし、コールバックを呼び出さないbcrypt.hashがコールバックを呼び出さない

bcrypt.genSalt(29, function(err, salt) { 
    if (err) { 
     res.json({ success: false, msg: err.message }); 
    } else { 
     bcrypt.hash(req.body.password, salt, function (err, hash) { 
      // This function is never called 
      res.json({ success: true }); 
     }); 
    } 
}); 

お勧めはありますか?

UPDATE

それはexpress.jsように&と関連していないようです。その後、私はnode test.jsを使用して起動

var bcrypt = require('bcrypt'); 

var pwd = 'Test password 123'; 

bcrypt.genSalt(29, function(err, salt) { 
    if (err) { 
     console.log('1: ' + err.message); 
    } else { 
     console.log('Salt: ' + salt); 
     bcrypt.hash(pwd, salt, function (err, hash) { 
      if (err) { 
       console.log('2: ' + err.message); 
      } else { 
       console.log('Hash: ' + hash); 
      } 
     }); 
    } 
}); 

: 私は、スクリプトファイルtest.jsを作成しました。 saltを出力した後、ハングアップし、bcrypt.hashはエラーを伴ってコールバック関数を呼び出しません。私はOS Xで作業しており、ノードv7.8.0がインストールされています。

+0

エラーをスローする最初のコールバックはありますか?また、req.body.passwordが定義されていますか?私はこれがいくつかのエンドポイントの中に座っていると仮定しますが、そのコードは表示されません。 – user2263572

+0

@ user2263572 1.いいえ2.はい –

+0

@ user2263572更新しました –

答えて

2

29ソルトラウンドとは、年月を要する鍵拡張ラウンドを意味します(Math.pow(2, 29))。説明するために

  • 10ラウンドは私のMBPに
  • 12ラウンド約78msかかりに関する300msの
  • 14ラウンドを取る程度1170ms
  • 16ラウンドを取る程度4700ms
を取ります

あなたは、29ラウンドを使用するのにかかる時間を計算するために数学を行うことができます(それは2.6ミルの線のどこかにありますライオンズ秒、または約1ヶ月)。

+0

何らかの理由で私は29が塩ストリングの長さであることを確信していました。今私は理解し始めたようだ。ありがとう! ) –

関連する問題