首页 > 解决方案 > 使用crypto-js解密base64文件会导致高内存堆

问题描述

我在 react native 应用程序中解密了一个 pdf 文件(大约 18mb),如下脚本。输入数据是加密的 base64 数据。然而,该进程导致 1.4 ~ 1.8 gb 内存使用并导致应用程序崩溃。有什么错误吗?或者它只是超出了手机可以处理的限制?

const bufferData = Buffer.from(encryptedBase64Data, 'base64');
function decryptDocumentData({ iv, key, data }) {   return new Promise((resolve, reject) => {
    try {

  const decrypted = CryptoJS.AES.decrypt(
    {
      ciphertext: CryptoJS.lib.WordArray.create(data),
    },
    CryptoJS.enc.Hex.parse(key.toString('hex')),
    {
      iv: CryptoJS.enc.Hex.parse(iv.toString('hex')),
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    }
  ).toString(CryptoJS.enc.Base64);

  resolve(decrypted);
    } catch (err) {
      reject(err);
    }   }); }

“react-native”:“0.59.9”,“react-native-crypto”:“^2.2.0”,“rn-fetch-blob”:“0.10.15”,

标签: react-nativeencryptioncryptojs

解决方案


推荐阅读