Javascript 字节数组能否用作CryptoJS.RC4.encrypt的密钥?

Javascript 字节数组能否用作CryptoJS.RC4.encrypt的密钥?,javascript,character-encoding,cryptojs,rc4-cipher,symmetric-key,Javascript,Character Encoding,Cryptojs,Rc4 Cipher,Symmetric Key,我需要使用字节数组(不可打印字符)作为RC4加密的密钥。纯文本是一个字符串。似乎CryptoJS.RC4.encrypt只要求明文和密钥都使用字符串。我说得对吗?如果没有,如何使用字符串和字节数组调用encrypt()?如果要从字节值列表创建键值,最好使用: 这将把输入字符串解析为两个字符对的列表,每个字符对描述一个字节值。在这种情况下,十六进制值将是48,65,6c,6c,6f,等等。您可以将parse调用的结果作为密钥参数直接传递到加密/解密方法中。(结果是一个名为“WordArray”的C

我需要使用字节数组(不可打印字符)作为RC4加密的密钥。纯文本是一个字符串。似乎
CryptoJS.RC4.encrypt
只要求明文和密钥都使用字符串。我说得对吗?如果没有,如何使用字符串和字节数组调用
encrypt()

如果要从字节值列表创建键值,最好使用:

这将把输入字符串解析为两个字符对的列表,每个字符对描述一个字节值。在这种情况下,十六进制值将是
48
65
6c
6c
6f
,等等。您可以将
parse
调用的结果作为
密钥
参数直接传递到加密/解密方法中。(结果是一个名为“
WordArray
”的CryptoJS类型,但您不必担心这种类型的机制;只需将其作为关键参数传入即可。)

如果要将数字数组转换为十六进制字符串,可以使用简单的循环和
。toString(16)

var byteArr=[72,101,108,108,111,44],
str=“”,
字节;
对于(vari=0;i
byteArr.map((num)=>(num<16?'0':“”)+num.toString(16)).join(“”)
CryptoJS.enc.Hex.parse('48656c6c6f2c20576f726c6421');
var byteArr = [72, 101, 108, 108, 111, 44],
    str = "",
    byteVal;
for(var i=0; i<byteArr.length; i++) {
    byteVal = byteArr[i];
    if(byteVal < 16) { str += "0"; }
    str += byteVal.toString(16);
};