react-native - 使用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”,
解决方案
推荐阅读
- python - 如何在 Facetgrid 中绘制 20 个不同的散点图 - Python (seaborn)
- javascript - 在 JavaScript 中反转字符串:为什么我的答案没有通过测试?
- java - 工厂模式是否可以仅用于一个用户定义的类而不能用于子类
- arrays - 是否有一个谷歌表格公式可以采用一系列单元格,并按字母顺序在一个单独的列中列出所有单元格?
- c# - 在 Blazor 中本地化 DateTime(和数字)
- python - 在 python 3 中解析 Json,从 API 获取电子邮件
- python - 如何使用用户输入停止while循环?
- reactjs - 如何从formik datePicker将dateFormat发送到api
- ios - 找不到 GoogleMobileAds.h 文件
- django - CORS 策略已阻止从源 [domain] 访问 [Img Link] 上的图像