高效的 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