在Node.js上的角度解密上加密数据

时间:2019-01-11 17:45:15

标签: node.js angular encryption

这是怎么做的?我尝试在angular上使用CryptoJS并在节点上使用Crypto Module,但没有成功,我一直收到描述错误

角度加密方法:

 _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解码错误

1 个答案:

答案 0 :(得分:0)

最终将angular lib更改为jsencrypt,CryptoJS不支持RSA,并且将node lib更改为node-rsa,以使用以下方式将加密方案设置为pkcs1:

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