数据加密

优质
小牛编辑
137浏览
2023-12-01

bcrypt 数据加密

文档:https://www.npmjs.com/package/bcryptjs 安装:cnpm i -S bcryptjs

  • [ ] 使用:
  1. 封装helper函数 app / extend / helper.js
    // 引入加密插件
    const bcrypt = require('bcryptjs')
    const jwt = require('jsonwebtoken')
    module.exports = {
     /**
      * 密码加密助手函数
      * @param {String} password 原始密码
      * @return {String} 返回加密后的密码
      */
     bcryptData(password) {
         // 生成盐
         const salt = bcrypt.genSaltSync(10)
         return bcrypt.hashSync(password, salt)
     },
     /**
      * 解密助手函数
      * @param {*} password 未加密的密码
      * @param {*} user_password 加密的密码
      * @return Promise 两个密码比对,比对成功返回true 失败返回 false
      */
      async comparePwd(password, user_password) {
       return await bcrypt.compare(password, user_password)
     },
     /**
      * 生成 jwt
      * @param {*} data 需要加密的用户信息
      */
     generateToken(data) {
         return jwt.sign({
             data
         }, this.config.token.key, { expiresIn: this.config.token.expiresIn });
     }
    }
  2. 控制器中使用 ctx.body = ctx.helper.bcryptData('123456')