Bcrypt加密详解

Bcrypt介绍

Bcrypt是单向Hash加密算法,类似Pbkdf2算法 不可反向破解生成明文。

在这里插入图片描述
在node中的使用

// npm bcrypt
// 导入bcrypt
const bcrypt = require('bcrypt');


async function run () {
	// 生成随机字符串
	// genSalt方法接收一个数值作为参数
	// 数值越大 生成的随机字符串复杂度越高
	// 数值越小 生成的随机字符串复杂度越低
	// 默认值是 10
	// 返回生成的随机字符串
	const salt = await bcrypt.genSalt(10);
	// 对密码进行加密
	// 1. 要进行加密的明文
	// 2. 随机字符串
	// 返回值是加密后的密码
	const result = await bcrypt.hash('123456', salt);
	console.log(salt);
	console.log(result);
}

run();

//如何进行验证呢?
//第一个参数是原始密码
//第二个参数是bcrypt加密后的密码
//两个参数进行校验 如果一致则放回true 否则返回 false
const pwdMatchFlag =bcrypt.compareSync(password, mypassword);

genSalt: 正数,代表hash杂凑次数,数值越高越安全,默认10次。
salt: 盐,一个128bits随机字符串,22字符
Hash: 经过明文密码password和盐salt进行hash,循环加盐hash10次,得到result结果

经过bcrypt加密的是无法直接解密的,因为bcrypt是单向hash算法,所以即便是黑客拿到bcrypt也很难破解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值