带有CryptoJS的Javascript AES无法完全解密

时间:2017-11-01 12:49:42

标签: aes

我获得的所有信息均为加密data(AES)和key。数据必须是URL。我尝试了很多代码片段(来自stackoverflow),并找到了一个对我有用的代码片段。

// Decode the base64 data so we can separate iv and crypt text.
var rawData = atob(data);
var iv = btoa(rawData.substring(0,16));
var crypttext = btoa(rawData.substring(16)); 

// Decrypt...
var plaintextArray = CryptoJS.AES.decrypt(
  {
    ciphertext: CryptoJS.enc.Base64.parse(crypttext),
    salt: ""
  },
  CryptoJS.enc.Hex.parse(key),
  { iv: CryptoJS.enc.Base64.parse(iv) }
); 

// Convert hex string to ASCII.
function hex2a(hex) {
    var str = '';
    for (var i = 0; i < hex.length; i += 2)
        str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
    return str;
}   

console.log(hex2a(plaintextArray.toString()));

网址必须为
http://test-example.com/hjhdsdfuisd
但输出只有
-example.com/hjhdsdfuisd

我改变了 var crypttext = btoa(rawData.substring(16));

var crypttext = btoa(rawData);
并得到了 ­ô#XÍäÜ7±H4-example.com/hjhdsdfuisd

我的错误是什么?

0 个答案:

没有答案