nodejs前后端添加RSA加密验证
前端添加rsa加密
背景: react项目
前端RSA
加密使用jsencrypt
,安装:
npm install jsencrypt --save
https://www.npmjs.com/package/jsencrypt
使用,直接上代码
importJSEncryptfrom'jsencrypt';
constEncrypt=newJSEncrypt();
let publicKey ='';
publicKey +='-----BEGIN PUBLIC KEY-----';
publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';
publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';
publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';
publicKey +='FJDLSKAJKLJ3L2J49FIDSAJF';
publicKey +='-----END PUBLIC KEY-----';
exportdefault{
/**
* 加密一个参数
* @param {*} value 需要加密的值
*/
encrypt(value){
Encrypt.setPublicKey(publicKey);
returnEncrypt.encrypt(value);
},
};
注意:
- 上面代码的公钥当然是错的(不要去试)
- 公钥有换行,不要偿试把换行去掉,拼成一行
nodejs-rsa-">后端(NODEJS)添加RSA解密
背景:nodejs项目
jsencrypt
是前端框架,不要偿试在后端使用,后台我们使用node-rsa
,安装:
https://www.npmjs.com/package/node-rsa
npm install node-rsa --save
后台RSA的目录结构
.
|-- pem
||-- rsa_private_key.pem
|`-- rsa_public_key.pem
`-- rsa.js
后台代码(rsa.js):
'use strict';
const fs =require('fs');
const path =require('path');
const RSA =require('node-rsa');
// RSA解密
const keyPath = path.resolve(__dirname,'./pem/rsa_private_key.pem');
const privatePem = fs.readFileSync(keyPath).toString();
const privateKey =new RSA(privatePem);
// 转成pkcs1格式
privateKey.setOptions({ encryptionScheme:'pkcs1'});
module.exports ={
/**
* 解密
* @param {*} value 需要解密的值
*/
decrypt(value){
let data = value;
// 使用try...catch...捕获解密失败错误(如公钥错误),返回controller处理
try{
data = privateKey.decrypt(value,'utf8');
return data;
}catch(err){
returnfalse;
}
},
};
后台调用:
const RSA =require('./rsa/rsa');
// 要解密使用RSA公钥加密的password字段
RSA.decrypt(password)
以上是 nodejs前后端添加RSA加密验证 的全部内容, 来源链接: www.h5w3.com/123173.html