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
}

猜你喜欢

转载自blog.csdn.net/weixin_43800535/article/details/124339276