ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Bcrypt加密详解

2021-05-17 18:57:28  阅读:234  来源: 互联网

标签:加密 Bcrypt salt 详解 随机 字符串 hash 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有