Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解密数组中的每个元素_Javascript_Cryptojs - Fatal编程技术网

Javascript 解密数组中的每个元素

Javascript 解密数组中的每个元素,javascript,cryptojs,Javascript,Cryptojs,我有一个用CryptoJS加密的n字符串元素数组:[krypt1,krypt2,krypt3,…] 每个元素的密钥解密都是相同的。 我尝试解密数组中的每个元素,并返回一个字符串解密元素数组,如下所示[dekrypt1,dekrypt2,dekrypt3,…] 我的代码是: var urltodecrypt = this.url.chunk; function decrypteach(x) { return CryptoJS.AES.decrypt(x.toString(), keydec

我有一个用
CryptoJS
加密的
n
字符串元素数组:
[krypt1,krypt2,krypt3,…]

每个元素的
密钥解密都是相同的。

我尝试解密数组中的每个元素,并返回一个字符串解密元素数组,如下所示
[dekrypt1,dekrypt2,dekrypt3,…]

我的代码是:

var urltodecrypt = this.url.chunk;
function decrypteach(x) {
    return CryptoJS.AES.decrypt(x.toString(), keydecrypt).toString(CryptoJS.enc.Utf8);
}
var clearfileurl = urltodecrypt.map(decrypteach);
当数组中有1个元素时,一切正常:它返回一个正确解密的字符串元素数组

当有>1个元素时,
var-urltodecrypt
仍给出正确的数组(已验证),
var-clearfileurl
返回错误:
错误:格式错误的UTF-8数据

我错过了什么

编辑

在@vector Advisements上尝试了每个元素函数上的一个
循环


您已经提供了代码,但还没有显示出它应该有什么问题。请您的问题提供示例输入、输出和预期输出。您是在数组元素上循环还是同时将整个数组送入decrypteach()中?@vector,该问题由代码回答:
map
@vector将整个数组送入decrypteach()中首先,您的代码不显示位置[dekrypt1,dekrypt2,dekrypt3,…]已初始化。看起来您需要在数组上循环并一次返回一个解密的元素,这就是为什么当数组中有1个元素而不是2个或更多元素时它对您有效。因此,为每个数组元素调用decrypt函数一次,或者在函数中循环并返回解密项数组,不是吗?
var urltodecrypt = this.url.chunk;
var arrayLength = urltodecrypt.length;
for (var i = 0; i < arrayLength; i++) {
     var clearfileurl = CryptoJS.AES.decrypt(urltodecrypt.toString(), keydecrypt).toString(CryptoJS.enc.Utf8);
}
console.log (clearfileurl);
var urltodecrypt = this.url.chunk;
console.log (urltodecrypt);
function decrypteach(x) {
    var stringurl = x.toString();
    var bytesfileurl = CryptoJS.AES.decrypt(stringurl, keydecrypt);
    var finaldecrypturl = bytesfileurl.toString(CryptoJS.enc.Utf8);
    return finaldecrypturl;
}
var clearfileurl = urltodecrypt.map(decrypteach);
console.log (clearfileurl);