散列通过,比较结果

Hashed pass, compare the result

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

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

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

这 return 有 0 行。

我是否必须 return 密码然后 运行 比较?

 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
          } 
        });

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