如何使用CryptoJs转换为字符串并返回

时间:2014-01-22 18:43:36

标签: javascript cryptojs

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 });

以上两个步骤,工作正常。但在这之间,我需要将加密转换为字符串,以便通过网络进行传输,然后将其转换回来。我怎么能这样做?

1 个答案:

答案 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));