github开始:

要散列密码,请执行以下操作:

var bcrypt = require('bcrypt');
bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash("B4c0/\/", salt, function(err, hash) {
        // Store hash in your password DB.
    });
});

要判断密码,请执行以下操作:

// Load hash from your password DB.
bcrypt.compare("B4c0/\/", hash, function(err, res) {
    // res == true
});
bcrypt.compare("not_bacon", hash, function(err, res) {
    // res = false
});

从上面来看,比较中怎么可能没有盐值?我错过了什么?

推荐答案

盐被合并到散列中(作为明文).compare函数只是将salt从散列中取出,然后使用它对密码进行散列并执行比较.

Node.js相关问答推荐

如何在RavenDB中执行JS索引?

Node.js分页返回空数组

获取页面大小为10的所有文章,每篇文章填充一些所需的用户信息

ForbidenError:使用Express.js的CSRF令牌无效

使用AWS SDK for JavaScript V3将图像从node.js上传到s3 bucket

为什么 Cors 在 NodeJS 中不起作用

我收到警告:发现函数rs-ms-v1不受支持的运行时nodejs18.x× 不受支持的运行时

将 POST 的 json 变量格式化为 lambda

无法使用 Express 设置会话 cookie 的过期日期

如何使用 Node.js 连接到 Cloud SQL?

Mongodb - 在数组数组中查找()

使用单个 MongoDB 查询更新多个元素

发布请求不使用 Nodejs 更新 MongoDB 中的标头信息

仅在 vue 脚本未退出的情况下使用 docker 时出现错误

加速 sequelize ORM 中的查询

JAVASCRIPT:foreach 循环后的空数组

如何在 cypress 测试中进行计算

当我们有esnext时,为什么我们需要nodenext typescript 编译器选项?

使用加密模块的流功能获取文件的哈希(即:没有 hash.update 和 hash.digest)

在 PassportJS 中使用多种本地策略