我正在使用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模块或我的实现的问题。
答案 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
希望这有帮助