bcrypt 密码加密

哈希加密是单程加密方式: 1234 => abcd (容易爆破)

在加密的密码中加入随机字符串可以增加密码被破解的难度

// 导入bcrypt 模块
const bcrypt = require('bcrypt')
// 生成随机字符串 gen => generate 生成salt 盐
let salt = await bcrypt.genSalt(10)
// 使用随机字符串对密码进行加密
let pass = await bcrypt.hash('明文密码', salt)

bcrypt 依赖环境

1.python2.x

2.node-gyp

npm i -g node-gyp

3.windows-build-tools (Windows环境)

npm i -g --production windows-build-tools

4.bcrypt

npm i bcrypt

示例:

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

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

run()

 显示结果: 

$2b$10$LZg9xeA2lUxEd0LPGso4m.
$2b$10$LZg9xeA2lUxEd0LPGso4m.dTDYsHfsZ8qvUV5qkn1nujSVRrA0qS6

密码比对: 
let isEqual = await bcrypt.compare('明文密码', '加密密码')

如果密码比对成功则结果为true,比对失败则为false

原文地址:https://www.cnblogs.com/liea/p/11297332.html