哈希通行证,比较结果

时间:2019-09-27 10:13:14

标签: node.js postgresql passwords bcrypt

我有一个带有节点后端的postgres datbase。

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

1 个答案:

答案 0 :(得分:2)

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