思路:
前后端各自生成一套密钥对。双方互相交换公钥,保存私钥。
前端生成16位key使用AES对主数据加密。使用后端交换得来的RSA公钥对key进行加密传输给后端,后端获取到加密串后使用保存的私钥对其解密获取AES的key,在使用获取的key对AES加密串进行解密,获取数据原文
1、安装依赖
RSA依赖包node-rsa:npm install node-rsa
AES依赖包crypto-js:npm install crypto-js
2、封装加解密函数
utils文件夹里新建encryption.js文件
2.1引入依赖
// AES + RSA 混合加密
import NodeRSA from "node-rsa"
import CryptoJS from "crypto-js"
2.2 加密
// 后端 RSA 公钥 (加密用)
const publicKey = "-----BEGIN PUBLIC KEY-----MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKsyX6CmZiq4N9QKYAEsbO8JXj0n/VqivT+av6UOFciBHhIyqe33hrdaEmWKf7unqjTHqgbu6k5pofS3LVKRK8sCAwEAAQ==-----END PUBLIC KEY-----"
// 前端 RSA 私钥 (解密用)
const privateKey = "-----BEGIN PRIVATE KEY-----MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAjrRVrQfGgIvJ3