You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加密待办清单分享数据 生成可短链传播、客户端可解密的安全URL参数

功能实现方案

方案1:加密字符串实现(无需额外存储)

该方案直接把清单参数加密后放到URL中,不需要服务端额外存映射关系:

  • 第一步:参数序列化:把清单的lid、oid、type三个参数转为无空格的紧凑JSON字符串,减少冗余长度,示例:{"lid":"xxx...","oid":"xxx...","type":1}
  • 第二步:加密处理:选择AES-128-GCM对称加密算法对JSON字符串加密,密钥仅保存在你的服务端和可信客户端内。加密后得到密文、IV向量、认证标签三个部分,将三者拼接后做Base64URL编码,得到URL友好的安全加密字符串。这里选择GCM模式是因为自带完整性校验,可防止参数被恶意篡改。
  • 第三步:生成短链:将加密字符串作为参数拼接到你的应用域名下,生成长链接格式如https://todolistapp.com/share?data=加密字符串,再将该长链通过短链服务生成你需要的短链格式https://todolistapp.com/shorturl即可。
  • 第四步:解密还原:用户访问短链时会跳转到你的应用长链接,客户端/服务端拿到data参数后,先做Base64URL解码,再用密钥解密,校验认证标签合法后即可解析出原始的三个清单参数,获取对应清单数据。

方案2:短码映射实现(更简单高效)

如果不想处理复杂的加解密逻辑,可选择更轻量化的映射方案:

  • 第一步:把lid、oid、type三个参数存入服务端数据库,生成一个全局唯一的6-8位随机短码,和这三个参数做关联映射。
  • 第二步:直接用短码生成长链接https://todolistapp.com/share?code=短码,再生成短链即可。
  • 第三步:用户访问时,服务端拿短码查询数据库即可得到对应的清单参数,无需加解密,性能更高,短链长度也更短,唯一要求是需要额外的数据库存储。

可选优化点

  • 如果加密后的字符串过长,可在序列化JSON后先做gzip压缩再加密,可缩短30%以上的长度。
  • 可给加密字符串加过期时间,把过期时间戳一起放到加密的参数里,解密时校验时间,实现分享链接过期失效的能力。

内容的提问来源于stack exchange,提问作者Hugo Pretorius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:54:04