vue前端加密及nodejs后端解密
加密前,密码以明文形式直接传给后端,谁都能看见密码:所以需要采用加密算法将密码加密后传给后端,再由后端解密,这里使用rsa
·
加密前,密码以明文形式直接传给后端,谁都能看见密码:
所以需要采用加密算法将密码加密后传给后端,再由后端解密,这里使用RSA加解密
准备工作
在这里先生成公钥私钥
将公钥放在vue项目utils中的文件中
vue项目下安装jsencrypt
npm install jsencrypt
在需要的vue页面中(如登录页)引入公钥和jsencrypt
import JsEncrypt from "jsencrypt"
import { _pubKey } from '@/utils/rsaEncrypt'//引入rsaEncrypt.js
私钥放在node文件夹下
node下安装node-rsa
npm install node-rsa
node下引入node-rsa
const NodeRSA = require("node-rsa")
前端公钥加密密码
vue页面提交接口前加密密码
let en = new JsEncrypt()
en.setPublicKey(_pubKey)
api.postLogin({
phoneNum: this.loginForm.phoneNum,
password: en.encrypt(this.loginForm.password)
})
加密完成
后端私钥解密密码
const privateKey = new NodeRSA(_priKey) // 使用node-rsa
privateKey.setOptions({ encryptionScheme: "pkcs1" }) // 因为vue中使用jsencrypt,jsencrypt自身使用的是pkcs1加密方案, nodejs需要修改成pkcs1
将前端传来的密码解密
var password = privateKey.decrypt(req.body.password, "utf8")
解密完成
更多推荐
已为社区贡献3条内容
所有评论(0)