如何加密/压缩 JSON 字符串并用作 URL 查询?

高效的 JavaScript 技术来加密和压缩 URL 查询的 JSON

要在 JavaScript 中加密和压缩 URL 查询的 JSON 字符串,您可以使用各种技术。虽然 base64 编码会增加 URL 长度,但 caesarCipher 函数等选项可以压缩文本,但可能无法提供强大的安全性。

以下是提供的 caesarCipher 函数的细分:

const caesarCipher = (str, shift, decrypt = false) => {
   const s = decrypt ? (26 - shift) % 26 : shift;
   const n = s > 0 ? s : 26 + (s % 26);
   return [...str].map((l, i) => {
      const c = str.charCodeAt(i);
      if (c >= 65 && c <= 90)
         return String.fromCharCode(((c - 65 + n) % 26) + 65);
      if (c >= 97 && c <= 122)
         return String.fromCharCode(((c - 97 + n) % 26) + 97);
      return l;
   }).join('');
};

// Examples of usage:
caesarCipher('Hello World!', -3); // 'Ebiil Tloia!'
caesarCipher('Ebiil Tloia!', -3, true); // 'Hello World!'
caesarCipher('Ebiil Tloia!', 3); // 'Hello World!'

但是,为了实现更强的加密,请考虑使用 crypto-js 等成熟的加密库。请记住,加密可能会增加字符串的长度,并且加密文本的压缩效果可能不佳。

建议使用 SHA-256 等安全哈希函数,并使用 urlsafe-base64 对输出进行编码。此方法可产生较短的表示形式,从而确保一定程度的安全性,而不会过度增加 URL 长度。

对于 Node.js 服务器,您可以利用 crypto 等库执行 SHA-256 哈希处理,然后将输出编码为 base64。或者,在客户端,crypto-js 等库提供加密功能。

请记住,虽然这些技术在安全性和 URL 长度之间提供了不同的权衡,但在实施任何方法之前评估您的具体要求至关重要。

2 我的第一反应是说“不要这样做”,而是使用一些计数器或其他唯一标识符。如果必须这样做,您可以使用 SHA-256 等安全哈希,并使用 urlsafe-base64 对输出进行编码,从而得到 44 个字符的哈希表示。– CNDKK荻酷网 2023 年 10 月 28 日 13:07

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荻酷社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值