可以使用CryptoJS.RC4.encrypt将字节数组用作密钥吗?

时间:2015-07-20 18:18:45

标签: javascript character-encoding cryptojs rc4-cipher symmetric-key

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

1 个答案:

答案 0 :(得分:3)

如果要从字节值列表中创建键值,最好的办法是使用hex encoder function, CryptoJS.enc.Hex.parse

CryptoJS.enc.Hex.parse('48656c6c6f2c20576f726c6421');

这会将您的输入字符串解析为两个字符对的列表,每个字符对都描述一个字节值。在这种情况下,十六进制值将为48656c6c6f等。您可以传递{{的结果1}}直接调用加密/解密方法作为parse参数。 (结果是名为“key”的CryptoJS类型,但您不必担心此类型的机制;只需将其作为关键参数传递。)

如果要将数字数组转换为十六进制字符串,可以使用简单的循环轻松完成此操作WordArray

.toString(16)