8
var encrypted = CryptoJS.AES.encrypt(jsonStr, 'youngunicornsrunfree', { format: JsonFormatter });

//convert encrypted to a string for transfer
//convert string back to Crypto object so it can be decrypted.

var decrypted = CryptoJS.AES.decrypt(encrypted, "youngunicornsrunfree", { format: JsonFormatter });

以上两步,工作正常。但在这两者之间,我需要将加密转换为字符串以通过网络传输,然后再将其转换回来。我怎样才能做到这一点?

4

1 回答 1

20

让我们简化它以便能够解决问题。首先,我们从这样的事情开始:

jsonStr = '{"something":"else"}';
var encrypted = CryptoJS.AES.encrypt(jsonStr, 'youngunicornsrunfree');
var decrypted = CryptoJS.AES.decrypt(encrypted, "youngunicornsrunfree");
console.log(decrypted.toString(CryptoJS.enc.Utf8));

在我们加密它然后解密它之后,这给了我们我们的答案 jsonStr。但是假设我们想将它发送到服务器。我们可以通过提取加密字符串来轻松做到这一点toString()。听起来很简单吧?假设我们需要将加密的 jsonStr 发送到服务器。试试这个

jsonStr = '{"something":"else"}';
var encrypted = CryptoJS.AES.encrypt(jsonStr, 'youngunicornsrunfree');
console.log("We send this: "+encrypted.toString());

现在说我们早些时候发送了一些东西,我们正在取回它。我们可以这样做:

var messageFromServer = "U2FsdGVkX19kyHo1s8+EwNuo/LQdL3RnSoDHU2ovA88RtyOs+PvpQ1UZssMNfflTemaMAwHDbnWagA8lQki5kQ==";
var decrypted = CryptoJS.AES.decrypt(messageFromServer, "youngunicornsrunfree");
console.log(decrypted.toString(CryptoJS.enc.Utf8));
于 2014-01-22T19:10:50.357 回答