Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Sequelize和mysql加密密码列_Mysql_Sequelize.js - Fatal编程技术网

使用Sequelize和mysql加密密码列

使用Sequelize和mysql加密密码列,mysql,sequelize.js,Mysql,Sequelize.js,我第一次使用sequelize,对加密用户密码有疑问 我想使用函数AES_ENCRYPT来加密字符串文本。 我的问题是,如何在sequelize上调用该函数???您只需要在创建之前bcrypt打包并挂起 它要做的是在将条目插入数据库之前检查passowrd字段,并在插入数据库之前加密 这里是(密码加密的代码片段): const bcrypt = require('bcrypt'); var User = db.sequelize.define( 'user' , { ... p

我第一次使用sequelize,对加密用户密码有疑问

我想使用函数AES_ENCRYPT来加密字符串文本。
我的问题是,如何在sequelize上调用该函数???

您只需要在创建之前
bcrypt
打包并挂起

它要做的是在将条目插入数据库之前检查passowrd字段,并在插入数据库之前加密

这里是(密码加密的代码片段)

const bcrypt = require('bcrypt');

var User = db.sequelize.define( 'user' , {
    ...
    password : {
        type : db.Sequelize.STRING
    },
    ...
},
{
    hooks : {
        beforeCreate : (user , options) => {
            {
                user.password = user.password && user.password != "" ? bcrypt.hashSync(user.password, 10) : "";
            }
        }
    }
});

您需要创建bcrypt和hooks:beforeCreate和beforeUpdate

const User = sequelize.define('User', {
...
    password: {
        type: DataTypes.STRING,
        allowNull: false,
    }
...
});

function generateHash(user) {
    if (user === null) {
        throw new Error('No found employee');
    }
    else if (!user.changed('password')) return user.password;
    else {
        let salt = bcrypt.genSaltSync();
        return user.password = bcrypt.hashSync(user.password, salt);
    }
}

User.beforeCreate(generateHash);

User.beforeUpdate(generateHash);

没有外部软件包就没有其他方法了?@Raugaral,这个软件包是最流行的加密软件,所以别担心,你不会后悔的。编写自己的加密软件是个坏主意,加密技术非常复杂,很容易犯代价高昂的错误。bcrypt是一个受欢迎的库,因此它安全且工作良好!如果使用bcrypt加密,则无法解密@KieranQuinnCorrect,这就是我不能使用任何形式的NodeJs加密的原因