首页 > 解决方案 > 在Nodejs上加密角度解密数据

问题描述

这样做的方法是什么?我尝试在节点上的角度和加密模块上使用 CryptoJS,但没有成功我不断收到描述错误

角加密方法:

 _rsaEnc(p) {
    var e = new JSEncrypt();
    const key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/kaskaskKAS';
    e.setPublicKey(key);

    return e.encrypt(p);
  }

节点解密方法

privK = {
          key: fs.readFileSync('./app/services/private.pem').toString(),
          passphrase: 'xxxxxx'
      };
      var buf = Buffer.from(base64Data, 'base64');

      origData = crypto.privateDecrypt(privK, buf);
     return origData.toString('utf-8');

错误:

错误:错误:040A1079:rsa 例程:RSA_padding_check_PKCS1_OAEP_mgf1:oaep 解码错误

标签: node.jsangularencryption

解决方案


最终将角度库更改为 jsencrypt,CryptoJS 不支持 RSA,并将节点库更改为 node-rsa 以将加密方案设置为 pkcs1

myDecrypter.setOptions({encryptionScheme: 'pkcs1'});

推荐阅读