1
我需要使用字節數組(非可打印字符)作爲RC4加密的關鍵字。明文是一個字符串。看起來CryptoJS.RC4.encrypt
只能用於明文和密鑰的字符串。我對麼?如果不是,我如何用字符串和字節數組調用encrypt()
?CryptoJS.RC4.encrypt可以使用字節數組作爲密鑰嗎?
我需要使用字節數組(非可打印字符)作爲RC4加密的關鍵字。明文是一個字符串。看起來CryptoJS.RC4.encrypt
只能用於明文和密鑰的字符串。我對麼?如果不是,我如何用字符串和字節數組調用encrypt()
?CryptoJS.RC4.encrypt可以使用字節數組作爲密鑰嗎?
如果你想創建一個字節值的列表中的鍵值,最好的辦法是使用hex encoder function, CryptoJS.enc.Hex.parse
:
CryptoJS.enc.Hex.parse('48656c6c6f2c20576f726c6421');
這會分析你輸入的字符串作爲兩個字符對的列表每個描述一個字節值。在這種情況下,十六進制值爲48
,65
,6c
,6c
,6f
等。您可以將parse
調用的結果直接作爲參數key
傳遞給加密/解密方法。 (結果是一個名爲「WordArray
」的CryptoJS類型,但您不必擔心此類機制;只需將它作爲關鍵參數傳遞即可。)
如果要將一組數字?到一個十六進制字符串,可以用一個簡單的循環和.toString(16)
容易做到這一點:
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);
};
'byteArr.map((NUM)=>(NUM <16 '0': '')+ num.toString( 16))。加入( '')' – royhowie