如何在节点 js 中使用 bcrypt 加密密码?

问题描述

早上好 我在节点 js 中使用 bcrypt 加密密码有问题 我的比较变量返回 false 我的代码在我的数据库中插入我的密码(法语中的 motDePasse)

// con.escapeId(sorter);
  //ICI CRYPTAGE DE motDePasse bcrypt 
  motDePasse =  bcrypt.hashSync(motDePasse,10);
  //var sql = "INSERT INTO `users` (`id`,`first_name`,`last_name`,`telephone`,`user_name`,`password`,`adresseMail`,`rue`,`codePostal`,`ville`,`confirmation`) VALUES (NULL,'"+con.escapeId(nom)+"','"+con.escapeId(prenom)+"','"+con.escapeId(telephone)+"','"+con.escapeId(pseudo)+"','"+con.escapeId(motDePasse)+"','"+con.escapeId(adresseMail)+"','"+con.escapeId(rue)+"','"+con.escapeId(codePostal)+"','"+con.escapeId(ville)+"','"+confirmation+"')";
    var sql = "INSERT INTO `users` (`id`,'"+nom+"','"+prenom+"','"+telephone+"','"+pseudo+"','"+motDePasse+"','"+adresseMail+"','"+rue+"','"+codePostal+"','"+ville+"','"+confirmation+"')";

  con.query(sql,function (err,result) {
    if (err) throw err;
    console.log("1 record inserted");

和我选择密码的代码

con.query("SELECT * FROM `users` WHERE `user_name`='"+login+"'",result) {
    //con.query("SELECT * FROM `users` WHERE `user_name`='"+login+"' and password = '"+password+"'",result) {  
    if (err) throw err;
    
    const comparison =  bcrypt.compareSync(password,result[0].password);
    console.log("comparison:"+comparison);

const 比较返回 false 我不明白为什么 谢谢你的帮助 :) 我已经听从了你的好建议 这是我的新代码

/ICI CRYPTAGE DE motDePasse bcrypt 
   bcrypt.genSalt(10,function(err,salt) {//---
           bcrypt.hash(motDePasse,salt,hash) {
           console.log("hash:"+hash);
           
           
  
  
    var sql = "INSERT INTO `users` (`id`,'"+hash+"','"+confirmation+"')";

con.query("SELECT * FROM `users` WHERE `user_name`= ?",[login],result) {  
    if (err) throw err;
    console.log("password:"+password);
    bcrypt.compare(password,result[0].password,result) {
            console.log("result:"+result);
           });
当我直接在我的代码中通过我的哈希时它正在工作 结果为真 问题来自MysqL 感谢您的帮助 问题来自

let motDePasse=req.body.motDePasse.replace(/<[^>]+>/g,'');

删除它,一切都很好,感谢您的帮助:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)