首页 > 解决方案 > 散列通过,比较结果

问题描述

我有一个带有节点后端的 postgres 数据库。

  let hash = bcrypt.hashSync("mypass", 10);

  try {
    const queryString = `
        SELECT * 
        FROM users where username= 'admin' and password='${hash}'
  `;

这将返回 0 行。

我必须返回密码然后运行比较吗?

 try {
        const queryString = `
            SELECT username, password
            FROM users where username= 'admin'
      `;

       bcrypt.compare(RETURNED PASSWORD, hash, function(err, res) {
          if(res) {
           // Passwords match
          } else {
           // Passwords don't match
          } 
        });

标签: node.jspostgresqlpasswordsbcrypt

解决方案


是的,因为 bcrypt 算法为相同的输入创建不同的哈希,所以你必须返回哈希密码然后比较它。


推荐阅读