为了让项目数据在前后端交互过程中不被拦截破解,在项目中使用RSA对数据进行加解密,同时考虑到交互数据过大情况,于是想到将数据在加密前先进行压缩,解密后在解压的思路。
基于nodejs代码进行测试,得到了验证。
const NodeRSA = require('node-rsa');
const zlib = require('zlib');
// 生成密钥对
const key = new NodeRSA({ b: 512 }); // 生成512位密钥
const publicKey = key.exportKey('pkcs8-public'); // 导出公钥
const privateKey = key.exportKey('pkcs8-private'); // 导出私钥
// 加密函数
function encrypt(data, publicKey) {
const key = new NodeRSA(publicKey);
const encrypted = key.encrypt(data, 'base64', 'utf8');
return encrypted;
}
// 解密函数
function decrypt(encryptedData, privateKey) {
const key = new NodeRSA(privateKey);
const decrypted = key.decrypt(encryptedData, 'utf8');
return decrypted;
}
// 示例数据
let data = {
"glu": [
{
"id": "46dc16a9-d348-4f35-9078-fbea738feba0",
标签:const,nodejs,privateKey,加解密,RSA,publicKey,key,new,NodeRSA
From: https://blog.csdn.net/qq_33930144/article/details/144403954