Agent Skills
返回列表
本地草稿加密

本地草稿加密

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/qtn20268850 技能到 AI 助手。

技能介绍

草稿明文裸奔的隐患

在开发 Web 应用时,我们经常需要将用户的未完成草稿(如包含手机号、备注等敏感信息的表单数据)缓存在浏览器的 localStorage 中。然而,localStorage 的数据是以明文存储的,这意味着任何能够接触到该设备的人,只需随手打开开发者工具(DevTools),就能在 Application 面板中一眼看穿所有敏感数据。对于一些需要本地暂存隐私数据的 Demo 或轻量级应用来说,这构成了最直接的隐私泄露风险。

核心能力与关键步骤

该技能基于 crypto-js 库,在浏览器端提供 AES 对称加密能力,将草稿加密后再存入本地存储。其核心工作流非常直接:

  • 保存草稿:用户输入口令,前端调用 saveEncryptedDraft 将序列化后的草稿字符串加密,并写入 localStorage。
  • 读取草稿:再次打开时,要求输入同一口令,通过 decryptDraft 解密还原。
  • 错误处理:口令为空时拒绝执行;解密失败时返回明确错误,坚决不输出半截明文。

需要注意的是,若与 lowdb 或 SuperJSON 等工具联用,必须遵循“先序列化,再加密字符串”的原则。

适用边界与安全注意

必须明确,这种前端本地加密仅能防范“随手打开 DevTools 看一眼明文”级别的低级风险,它绝不是服务端的安全边界。由于浏览器环境的开放性,前端加密无法对抗本机木马或同域 XSS 攻击。因此,严禁将密钥或口令硬编码在源码或仓库中,必须由用户输入或通过安全会话持有,也不要使用类似 123456 的默认口令。请合理评估其防护等级,避免过度宣称“绝对安全”而误导最终用户。

使用场景

  • 开发表单类Web应用时,需缓存含手机号的未完成草稿,避免明文存localStorage
  • 制作加密存储Demo时,需展示AES加密后再存本地的完整流程
  • 开发轻量级工具时,需在导出文件前对内容加密,防止明文泄露
  • 与lowdb联用缓存数据时,需先序列化再加密字符串后存储

适合人员

  • 前端开发者,需保护本地草稿中的隐私数据,避免DevTools直接查看
  • Demo开发者,要展示加密存储流程,验证前端加密方案可行性
  • 轻量级应用开发者,需低成本实现本地数据加密,平衡安全与性能
  • 数据缓存开发者,与lowdb等工具联用时,需确保加密与序列化顺序正确