server端密码加密

本篇文章将介绍如何在server端进行密码加密。

封装加密工具类:使用nodejs内置的crypto库对密码进行MD5加密。

utils/cryp.js

const crypto = require('crypto')

// 密钥
const SECRET_KEY = 'DAl@_da01'

// md5 加密
function md5 (password) {
  let md5 = crypto.createHash('md5')
  return md5.update(password).digest('hex')
}
// 密码加密
function genPassword (password) {
  const str  = `password=${password}$key=${SECRET_KEY}`
  return md5(str)
}

module.exports = {
  genPassword
}

然后就可以在用户注册和登录的地方对密码进行处理。

controller/user.js

const { exec,escape } = require('../db/mysql')
const {genPassword} = require('../utils/cryp')
// 登录
const login = (username, password) => {

  // 转义特殊字符
  username = escape(username)

  // 对密码进行加密
  password = genPassword(password)

   // 转义特殊字符
  password = escape(password)

  const sql = `select username,realname from users where username='${username}' and password='${password}';`
  return exec(sql).then(rows => {
    return rows[0] || {}
  })
}
module.exports = {
  login
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值