Bcrypt比较总是在带有mySQL

时间:2018-07-13 16:19:03

标签: mysql sql node.js express bcrypt

我还是Node和这个包的新手

var bcrypt = require('bcrypt');
const saltRounds = 10;    
var pw = MyPlainTextPassword
    var sql = 'load hashed password from DB;
        con.query(sql, function (err, result) {
            if (err) throw err;
           bcrypt.compare(pw, result[0].password).then(function (res) {
               if (res == 'true' || res == 'True'){
                   //create login token
               } else{
                   console.log('Incorrect user ID or Password');
               }
            });
        });

环顾四周,其他遇到此问题的人说,问题在于数据库没有存储完整的哈希;但是,该条目的数据库最多可以存储VarChar(128)(哈希值永远不会超过60),字符集为UTF-8。其他问题是它不同步,因此在IF块期间没有响应,我使用'.then'块解决了这个问题,所以我知道它是同步的,并且我知道答案存储为'false' 。我怀疑问题可能与散列的存储方式有关:

bcrypt.hash(params_[4], saltRounds, function(err, hash) {
        con.connect(function(err) {
            if (err) throw err;
            console.log("Connected!");
            con.query 'insert query', function (error,results,fields) {
                    if (error) throw error;
                    console.log('New user Created on ' + date);
            });
        });
    });

为什么这仍然总是返回false?

0 个答案:

没有答案