使用 CryptoJS 解密二进制字符串并写入文件

过去一天我一直在用头撞墙,我试图解密一个二进制字符串,然后使用 CryptoJS 编写它。我让它工作了,但让我头疼的是它的性能。我目前正在使用一些肮脏的解决方法来做到这一点,但我很确定有一种更快更有效的方法。


convertWordArrayToUint8Array(CryptoJS.AES.decrypt(base64ArrayBuffer(res), key))


//"key" is a 32 character string (passphrase)

//"res" is a binary string converted to an ArrayBuffer

我目前的尝试是使用 XMLHttpRequest 将二进制字符串作为 ArrayBuffer 获取,然后将其转换为 Base64 字符串,然后使用 CryptoJS 对其进行解密。解密后,我将结果转换为 Uint8 数组并将其写入文件。它可以工作,但速度很慢。在 Chrome 中解密一个 1 MB 的块大约需要 200 毫秒,而在 Firefox 中则需要 100 毫秒。


任何帮助表示赞赏!


HUX布斯
浏览 351回答 1
1回答

潇湘沐

出于好奇 - 为什么CryptoJS 我不太了解它,但您可能需要的许多加密功能在浏览器中很容易获得: https ://developer.mozilla.org/en-US/docs/Web/API/ SubtleCrypto/解密如果可以使用本机 API,我猜它会比 JavaScript 实现快一点。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript