bcrypt 在 nodejs 服务器上非常慢
bcrypt very slow on nodejs server
我的 test.js
文件中有以下代码:
const bcrypt = require("bcrypt");
const { performance } = require("perf_hooks");
let hash = "b$v38KOyF2WSaJI/wcxSKN6u1iyvjfOu.Tjs3QHKCW2O4nCt0rTUgMu";
let password = "7!E:J|8yvGw$v]xXfKngkUAw3]EQ?B";
async function checkPassword() {
let t = performance.now();
if (await bcrypt.compare(password, hash)) {
console.log("Passed! ", performance.now() - t);
} else {
console.log("Failed! ", performance.now() - t);
}
}
checkPassword();
那我运行node test.js
我得到的输出是:
Passed! 59178.30090880394 < for a correct password
Failed! 59386.33465099335 < for an incorrect password
基本检查时间将近一分钟! 这是预期的结果吗?
我的package.json正在使用:
"dependencies": {
"bcrypt": "^5.0.0",
...
我在控制台中没有收到任何错误,一切都在正确完成。我正在散列的密码是
7!E:J|8yvGw$v]xXfKngkUAw3]EQ?B
是不是太长了?我不完全理解 bcrypt
是如何工作的,以防不明显!
这是你的问题:
b$v38KOyF2WSaJI/wcxSKN6u1iyvjfOu.Tjs3QHKCW2O4nCt0rTUgMu
这意味着:
- 版本:2b
- 成本因素:20
成本系数 20
成本系数 12 在当前硬件上大约需要 250 毫秒。
Cost
Time
12
250 ms
13
500 ms
14
1 s
15
2 s
16
4 s
17
8 s
18
16 s
19
32 s
20
54 s
我的 test.js
文件中有以下代码:
const bcrypt = require("bcrypt");
const { performance } = require("perf_hooks");
let hash = "b$v38KOyF2WSaJI/wcxSKN6u1iyvjfOu.Tjs3QHKCW2O4nCt0rTUgMu";
let password = "7!E:J|8yvGw$v]xXfKngkUAw3]EQ?B";
async function checkPassword() {
let t = performance.now();
if (await bcrypt.compare(password, hash)) {
console.log("Passed! ", performance.now() - t);
} else {
console.log("Failed! ", performance.now() - t);
}
}
checkPassword();
那我运行node test.js
我得到的输出是:
Passed! 59178.30090880394 < for a correct password
Failed! 59386.33465099335 < for an incorrect password
基本检查时间将近一分钟! 这是预期的结果吗?
我的package.json正在使用:
"dependencies": {
"bcrypt": "^5.0.0",
...
我在控制台中没有收到任何错误,一切都在正确完成。我正在散列的密码是
7!E:J|8yvGw$v]xXfKngkUAw3]EQ?B
是不是太长了?我不完全理解 bcrypt
是如何工作的,以防不明显!
这是你的问题:
b$v38KOyF2WSaJI/wcxSKN6u1iyvjfOu.Tjs3QHKCW2O4nCt0rTUgMu
这意味着:
- 版本:2b
- 成本因素:20
成本系数 20
成本系数 12 在当前硬件上大约需要 250 毫秒。
Cost | Time |
---|---|
12 | 250 ms |
13 | 500 ms |
14 | 1 s |
15 | 2 s |
16 | 4 s |
17 | 8 s |
18 | 16 s |
19 | 32 s |
20 | 54 s |