使用 Sequelize 和 mysql 加密密码列

Rau*_*ral 3 mysql sequelize.js

我第一次使用sequelize,有一个关于加密用户密码的问题。

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

Viv*_*shi 5

你所需要的只是bcrypt包装和钩子beforeCreate

它将做的是在将条目插入数据库之前检查密码字段并在插入数据库之前进行加密

给你(密码加密的片段)

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) : "";
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

  • @Raugaral,这个软件包最流行的加密方式,所以不用担心,你不会后悔的。 (2认同)