我如何加密和解密Uint8Array使用javascript

How do i encrypt and decrypt Uint8Array using javascript?

本文关键字:解密 Uint8Array 使用 javascript 加密 何加密      更新时间:2023-09-26

我想加密和解密一个Uint8Array,我已经从这个链接下载了CryptoJS库。

我在一个虚拟字符串上测试了aes密码算法,它工作得很好。

现在我想在Uint8Array上实现它。这个数组保存了一个视频文件数据。

由于加密和解密在字符串上工作,我必须将其转换为字符串,因为我参考了张贴在stackoverflow上的这个问题,点击这里

加密代码为:

var encrypted = CryptoJS.AES.encrypt(String.fromCharCode.apply(null, uInt8Array), "test");

但是当我运行代码时,出现以下错误:

 Uncaught RangeError: Maximum call stack size exceeded 

我如何使它工作?

这个错误是由于String.fromCharCode.apply(null, uInt8Array)部分,CryptoJS从未被调用。

请注意,fromCharCode的完整语法是String.fromCharCode(n1, n2, ..., nX),因此必须将给定缓冲区的所有元素移到堆栈中才能apply函数。

你必须使用一个非常大的缓冲区,你说的视频文件,所以这一定是你得到stackoverflow错误的原因。

尝试使用"CryptoJS.lib"。而不是WordArray',如下所示:

http://groups.google.com/group/crypto-js/browse_thread/thread/4ce6fddad709954d?pli=1