zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    机器学习第二章复习
    机器学习第三章复习
    机器学习第四章复习
    第一次作业
    第二次作业
    第06组 Beta版本演示
    第06组 Beta冲刺(4/4)
    第06组 Beta冲刺(3/4)
    第06组 Beta冲刺(2/4)
    第06组 Beta冲刺(1/4)
  • 原文地址:https://www.cnblogs.com/liea/p/11297332.html
Copyright © 2011-2022 走看看