用CryptoJS加密

问题描述

我正在尝试使用CryptoJS库获得与从加密工具获得的值相同的值,但是我无法获得相同的加密值。

使用加密工具的结果:

enter image description here

Base64 Encoded Key: SisBCd6mVzPzZP7cpl/HvjqdkCpnujnJKUu8iosq/Yc=
Value to Encrypt: 55554444
Encrypted (ECB) Base64 Encoded Value: MLnK8JOyp+J4CoaqcWTAnW==

这是我尝试获得相同结果的代码

var data = '55554444'
var key = 'SisBCd6mVzPzZP7cpl/HvjqdkCpnujnJKUu8iosq/Yc='

// encrypt with key
var encrypted_ecb = CryptoJS.AES.encrypt(data,key,{mode: CryptoJS.mode.ECB});

console.log('encrypted_ecb: ',encrypted_ecb.toString())

// to base64
var rawStr = encrypted_ecb;
var wordArray = CryptoJS.enc.Utf8.parse(rawStr);
var base64_ecb = CryptoJS.enc.Base64.stringify(wordArray);

console.log('encrypted_base64_ecb: ',base64_ecb);

// Console Result:
// encrypted_ecb: U2FsdGVkX196PQg/s6RPQr3V9GEjf/WP7qRXxVh5GEU=
// encrypted_base64_ecb: VTJGc2RHVmtYMTk2UFFnL3M2UlBRcjNWOUdFamYvV1A3cVJYeFZoNUdFVT0=

如您所见,我得到的结果与使用该工具得到的结果相差很大。谁能指出我正确的方向?

谢谢!

解决方法

您还需要解析密钥。更改以下行

var key = 'SisBCd6mVzPzZP7cpl/HvjqdkCpnujnJKUu8iosq/Yc='

var key = CryptoJS.enc.Base64.parse('SisBCd6mVzPzZP7cpl/HvjqdkCpnujnJKUu8iosq/Yc=');