Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Bcryptjs异步不工作_Javascript_Node.js_Hash_Bcrypt - Fatal编程技术网

Javascript Bcryptjs异步不工作

Javascript Bcryptjs异步不工作,javascript,node.js,hash,bcrypt,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) {

我正在使用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) {

        });
    }           
});

尽管这应该是异步的,但它会使服务器的速度降低200毫秒。这是bcrypt js模块或我的实现的问题。

减少用于加密的saltround数。即使将其减少1,也可以显著提高性能

以下是bcrypt的摘录,用于比较基于SaltRound数的性能:

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

希望这有助于减少用于加密的saltround的数量。即使将其减少1,也可以显著提高性能

以下是bcrypt的摘录,用于比较基于SaltRound数的性能:

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

希望这有帮助

代码对我来说很好。不太清楚你为什么说“慢下来”。。。但仅仅因为JS/node中的某些内容是异步的,并不意味着它不会影响性能。。。如果该操作非常密集,它将减慢速度(因为它不是物理并发的)。我想,您可以使用workers之类的工具来获得更好的结果。那么,使用async?来不阻止执行有什么意义呢?但这并不意味着性能更好,因为它没有利用物理并发功能。所以它应该减速,但不应该阻塞。代码对我来说似乎很好。不太清楚你为什么说“慢下来”。。。但仅仅因为JS/node中的某些内容是异步的,并不意味着它不会影响性能。。。如果该操作非常密集,它将减慢速度(因为它不是物理并发的)。我想,您可以使用workers之类的工具来获得更好的结果。那么,使用async?来不阻止执行有什么意义呢?但这并不意味着性能更好,因为它没有利用物理并发功能。所以它应该会变慢,但不应该阻塞。这很重要,因为除非比较函数完成,否则不会调用
回调
。请参阅提供的文档链接。另外,我建议你测试一下,看看有什么不同。我已经把它减少到8了。它仍然落后。我想async会解决这个问题,因为除非compare函数完成,否则不会调用
回调。请参阅提供的文档链接。另外,我建议你测试一下,看看有什么不同。我已经把它减少到8了。它仍然落后。我想async可以解决这个问题