我目前有一个如下所示的数组:

["screen", "left_side", "left_side", "right_side", "left_side", "right_side", "left_side", "right_side"]

我现在想以某种方式对其进行加密,以便我可以将其用作 URL,例如:http://www.site.com/app.html?array=... 这是因为我希望允许用户共享他们的数组。

有什么方法可以将数组加密到可以在 URL 字符串中使用并稍后对其进行解密?

最佳答案

您可以使用 atobbtoa 函数。

myArray = ["screen", "left_side", "left_side", "right_side", "left_side", "right_side", "left_side", "right_side"]
btoa(JSON.stringify(myArray)) // "WyJzY3JlZW4iLCJsZWZ0X3NpZGUiLCJsZWZ0X3NpZGUiLCJyaWdodF9zaWRlIiwibGVmdF9zaWRlIiwicmlnaHRfc2lkZSIsImxlZnRfc2lkZSIsInJpZ2h0X3NpZGUiXQ=="

然后您可以将其转换回原始数组
array = JSON.parse(atob(str))

如果您包含 LZString (如评论中所述),您可以获得更短的字符串。
var str = btoa(JSON.stringify(myArray)); // 132 characters
var str = LZString.compressToBase64(JSON.stringify(myArray)); // 72 characters
var str = LZString.compressToBase64(myArray.toString()); // 64 characters

要解压,
array = JSON.parse(LZString.decompressFromBase64(str));

fiddle

关于javascript - 将数组解密为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18158986/

10-11 22:35
查看更多