密码加密 bcrypt 模块

哈希算法加密,单程加密方式
在加密的密码中加入随机字符串增加密码被破解的难度

bcrypt依赖的运行环境

  1. python
    官网下载安装即可
  2. node-gyp node的Python的编译环境
    管理员身份打开:WindowsPowerShell,使用 npm install -g node-gyp 命令下载安装
  3. windows-build-tools windows下的编译环境
    使用 npm install --global --production windows-build-tools 命令下载安装,这个时间会长一点
    第一次安装的时候,文件其实都下完了的,但是就卡在Successfully installed Python 2.7,第二天早上重新安装一下子就好了密码加密 bcrypt 模块_第1张图片

bcrypt安装

使用 npm install bcrypt 命令下载安装

使用方式

// 导入bcrypt模块
const bcrypt = require('bcrypt');
// 生成随机字符串,默认数值为10,数值越大复杂度越高,异步方法
let salt = await bcrypt.genSalt(10);
// 使用随机字符串对密码进行加密
let pass = await bcrypt.hash('明文密码', salt);

// 密码比对,返回true,比对成功
let isEqual = await bcrypt.compare('明文密码', '加密密码');

举个简单例子:

// 导入bcrypt模块
const bcrypt = require('bcrypt');
// 定义一个变量用来比对,通常是用户输入的密码
const str = '123456';
// 定义一个异步函数
async function run() {
     
	// 生成随机字符串
	let salt = await bcrypt.genSalt(10);
	// 假设原密码是123456,对密码加密,pass是加密后的字符串
	let pass = await bcrypt.hash('123456', salt);
	// 将两个密码进行比对,返回一个bull值
	let isEqual = await bcrypt.compare(str, pass);
	if(isEqual) {
     
		console.log('密码正确');
	} else {
      
		console.log('密码错误');
	}
}
run();

你可能感兴趣的:(nodejs)