Bcryptjs Async无法正常工作

时间:2017-01-17 11:48:01

标签: javascript node.js hash bcrypt

我正在使用bcryptjs在我的节点服务器上散列和比较密码。这是我的功能:

this.testPassword = function(pass1, pass2, callback) {
    bcrypt.compare(pass1, pass2, function(err, res) {
        callback(err, res);
    }.bind(this));
};

函数调用:

context.runQuery("...", function(resp, err) {
    if (!err) {
        testPassword("test11", "test12", function(err2, resp2) {

        });
    }           
});

尽管这应该是异步的,但它会使服务器减速200ms。这是bcrypt-js模块或我的实现的问题。

1 个答案:

答案 0 :(得分:0)

减少用于加密的SaltRounds数量。将其减少到1可以显示出显着的性能提升。

以下是bcrypt documentation的摘录,用于比较SaltRounds数量的性能:

  
      
  • rounds = 8:~40哈希/秒
  •   
  • rounds = 9:~20哈希/秒
  •   
  • rounds = 10:~10哈希/秒
  •   
  • rounds = 11:~5哈希/秒
  •   
  • rounds = 12:2-3哈希/秒
  •   
  • rounds = 13:~1 sec / hash
  •   
  • rounds = 14:~1.5 sec / hash
  •   
  • rounds = 15:~3 sec / hash
  •   
  • rounds = 25:~1小时/ hash
  •   
  • rounds = 31:2-3天/ hash
  •   

希望这有帮助