其他分享
首页 > 其他分享> > Bcrypt加密详解

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也很难破解

标签:加密,Bcrypt,salt,详解,随机,字符串,hash,bcrypt
来源: https://blog.csdn.net/CrtLife/article/details/116943400