本篇文章将介绍如何在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
}