AES+RSA混合加密

思路:

        前后端各自生成一套密钥对。双方互相交换公钥,保存私钥。

        前端生成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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值