nodejs前后端添加RSA加密验证

前端添加rsa加密

背景: react项目

前端RSA加密使用jsencrypt,安装:

  1. npm install jsencrypt --save

https://www.npmjs.com/package/jsencrypt

使用,直接上代码

    1. importJSEncryptfrom'jsencrypt';

    1. constEncrypt=newJSEncrypt();

    1. let publicKey ='';

    1. publicKey +='-----BEGIN PUBLIC KEY-----';

    1. publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';

    1. publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';

    1. publicKey +='FJDLSKAJKLJ3L2J49FIDSAJFLKSDJAK32FKJDSAFJKDKFKDFJKDSLAFLSAFDKSAFKDASLFD';

    1. publicKey +='FJDLSKAJKLJ3L2J49FIDSAJF';

    1. publicKey +='-----END PUBLIC KEY-----';

    1. exportdefault{

    1. /**

    1. * 加密一个参数

    1. * @param {*} value 需要加密的值

    1. */

    1. encrypt(value){

    1. Encrypt.setPublicKey(publicKey);

    1. returnEncrypt.encrypt(value);

    1. },

    1. };

注意:

  • 上面代码的公钥当然是错的(不要去试)
  • 公钥有换行,不要偿试把换行去掉,拼成一行

nodejs-rsa-">后端(NODEJS)添加RSA解密

背景:nodejs项目

jsencrypt是前端框架,不要偿试在后端使用,后台我们使用node-rsa,安装:

https://www.npmjs.com/package/node-rsa

  1. npm install node-rsa --save

后台RSA的目录结构

    1. .

    1. |-- pem

    1. ||-- rsa_private_key.pem

    1. |`-- rsa_public_key.pem

    1. `-- rsa.js

后台代码(rsa.js):

    1. 'use strict';

    1. const fs =require('fs');

    1. const path =require('path');

    1. const RSA =require('node-rsa');

    1. // RSA解密

    1. const keyPath = path.resolve(__dirname,'./pem/rsa_private_key.pem');

    1. const privatePem = fs.readFileSync(keyPath).toString();

    1. const privateKey =new RSA(privatePem);

    1. // 转成pkcs1格式

    1. privateKey.setOptions({ encryptionScheme:'pkcs1'});

    1. module.exports ={

    1. /**

    1. * 解密

    1. * @param {*} value 需要解密的值

    1. */

    1. decrypt(value){

    1. let data = value;

    1. // 使用try...catch...捕获解密失败错误(如公钥错误),返回controller处理

    1. try{

    1. data = privateKey.decrypt(value,'utf8');

    1. return data;

    1. }catch(err){

    1. returnfalse;

    1. }

    1. },

    1. };

后台调用:

    1. const RSA =require('./rsa/rsa');

    1. // 要解密使用RSA公钥加密的password字段

    1. RSA.decrypt(password)

以上是 nodejs前后端添加RSA加密验证 的全部内容, 来源链接: www.h5w3.com/123173.html

回到顶部