Express下采用bcryptjs进行密码加密的方法

发布时间:2019-01-08 整理:脚本之家
脚本之家收集整理的这篇文章主要介绍了Express下采用bcryptjs进行密码加密的方法脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随脚本之家小编过来看看吧!

前几天利用Express开发了个小项目,开发登录注册模块时,采用bcryptjs进行密码加密,总结了一下内容:

bcrypt,是一个跨平台的文件加密工具。由它加密的文件可在所有支持的操作系统和处理器上进行转移。它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。

除了对您的数据进行加密,默认情况下,bcrypt 在删除数据之前将使用随机数据三次覆盖原始输入文件,以阻挠可能会获得您的计算机数据的人恢复数据的尝试。如果您不想使用此功能,可设定禁用此功能。

bcrypt 使用的是布鲁斯·施内尔在1993年发布的 Blowfish 加密算法。具体来说,bcrypt 使用保罗·柯切尔的算法实现。随 bcrypt 一起发布的源代码对原始版本作了略微改动。

Express下bcryptjs的使用步骤:

1.安装bcryptjs模块

2.在需要加密的模块中引入bcryptjs库

3.设置加密强度

4.注册时生成HASH值,并插入数据库

5.登录时验证HASH值,并插入数据库

以上采用的是bcryptjs的同步用法,下面介绍异步用法:

生成hash密码:

密码验证:

{ // res === true });

下面是使用Bcrypt对数据加密的一个简单的栗子:

// 连接数据库
mongoose.connect('mongodb://localhost:27017/test')

// 定义用户模式
var UserSchema = new mongoose.Schema({
name: {
unique: true,type: String
},password: {
unique: true,type: String
}
},{ collection: "user"});

// 使用pre中间件在用户信息存储前进行密码加密
UserSchema.pre('save',function(next){
var user = this;

// 进行加密(加盐)
bcrypt.genSalt(SALT_WORK_FACTOR,salt){
if(err){
return next(err);
}
bcrypt.hash(user.password,hash){
if(err){
return next(err);
}
user.password = hash;
next();
})
});
});

// 编译模型
var UserBox = mongoose.model('UserBox',UserSchema);

// 创建文档对象实例
var user = new UserBox ({
name : "Jack",password : "123456"
});

// 保存用户信息
user.save(function(err,user){
if(err){
console.log(err);
}else{
// 如果保存成功,打印用户密码
console.log("password: " + user.password);
}
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

总结

以上是脚本之家为你收集整理的Express下采用bcryptjs进行密码加密的方法全部内容,希望文章能够帮你解决Express下采用bcryptjs进行密码加密的方法所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!