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 });
以上两个步骤,工作正常。但在这之间,我需要将加密转换为字符串,以便通过网络进行传输,然后将其转换回来。我怎么能这样做?
答案 0 :(得分:10)
让我们简化一下,以便能够解决问题。冷杉我们从这样的事情开始:
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));