vue前端加密及nodejs后端解密
加密前,密码以明文形式直接传给后端,谁都能看见密码:

所以需要采用加密算法将密码加密后传给后端,再由后端解密,这里使用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")

解密完成

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
