过去一天我一直在用头撞墙,我试图解密一个二进制字符串,然后使用 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 毫秒。
任何帮助表示赞赏!
潇湘沐
相关分类