簡體   English   中英

散列密碼對我不起作用

[英]hashed password not works with me

我不知道為什么這個哈希密碼代碼不起作用。 我確實安裝了bcrypt ,而且,如果密碼相同,它應該轉到行( res.send("testing") ),但無論如何在所有情況下密碼都不匹配,即使它們相同。

這是我的代碼:

const mysql = require('mysql');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');
const db = mysql.createConnection({
  host: process.env.DATABASE_host,
  user: process.env.DATABASE_user,
  password: process.env.DATABASE_password,
  database: process.env.DATABASE,
});

exports.form = (req, res) => {
  console.log(req.body);

  const { name, email, password, confirmPassword } = req.body;
  db.query(
    'SELECT email FROM users WHERE email=?',
    [email],
    async (error, results) => {
      if (error) {
        console.log(error);
      }

      if (results.length > 0) {
        return res.render('form', {
          message: 'that email is already in use',
        });
      } else if (password !== confirmPassword) {
        return res.render('form', {
          message: 'passwords not match',
        });
      }

      let hashedPassword = await bcrypt.hash('password', 8);
      console.log(hashedPassword);
      res.send('testing');
    }
  );
};
``

[enter image description here][1]


  [1]: https://i.stack.imgur.com/ToNvN.png

and always (passwords not match) comes even as u see in pic the passwords are same 

每次調用bcrypt.hash()都會得到不同的哈希字符串,即使密碼相同,這是因為哈希被加鹽。

要檢查散列是否相等,您需要使用bcrypt.compare()進行測試,您不能直接與散列進行比較。 一些庫也稱它為bcrypt.verify()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM