我目前正在使用以下方法对密码进行哈希运算:

var pass_shasum = crypto.createHash('sha256').update(req.body.password).digest('hex');

你能提出改进建议使项目更安全吗?

推荐答案

我使用下面的代码对密码进行加密和散列.

var bcrypt = require('bcrypt');

exports.cryptPassword = function(password, callback) {
   bcrypt.genSalt(10, function(err, salt) {
    if (err) 
      return callback(err);

    bcrypt.hash(password, salt, function(err, hash) {
      return callback(err, hash);
    });
  });
};

exports.comparePassword = function(plainPass, hashword, callback) {
   bcrypt.compare(plainPass, hashword, function(err, isPasswordMatch) {   
       return err == null ?
           callback(null, isPasswordMatch) :
           callback(err);
   });
};

Node.js相关问答推荐

nest js控制器方法调用两次

我的Node.js应用程序没有将Mongoose方法findByIdAndDelete作为函数进行检测

如何从基于JSON的HTML/SCSS模板生成PDF?

FHIR 服务器:尽管 JSON 格式正确,但在 POST 请求中接收未定义请求正文

TS[2339]:类型 '() => Promise<(Document & Omit) | 上不存在属性空>'

为什么当我使用waitForSelector时 Puppeteer 导致我的测试套件挂起 30 秒,即使我在页面和浏览器上调用关闭?

为什么 FastAPI 需要 Web 服务器(即 Nginx)而不是 Express API?

AWS EC2 npm install 突然很慢

如果 express.js (node.js) http 请求在完成之前关闭会发生什么?

如何在 mongoDB 中进行全动态搜索?

响应发送 200 而不是 403

无服务器无法获取所有记录事件对象验证失败?

`npm install` 以Killed结尾

使用 Socket.io 将客户端连接到服务器

如何为 node.js 服务器分配域名?

对不同对象中的函数使用相同的键时,V8 中的函数调用缓慢

Express.js:没有这样的文件或目录

异步构造函数

Node应用程序中相同npm包的两个版本

如何使用 cookie 创建 HTTP 客户端请求?