概述在浏览器端以 WebCrypto 提供的 `SubtleCrypto` 能力实现对本地文件的加密与解密,结合 OPFS 进行持久化,兼顾性能与隐私。技术背景WebCrypto 在现代浏览器广泛支持,提供 AES-GCM 等对称加密方案OPFS 提供站点私有空间,适合加密后的大文件存储核心实现const key = await crypto.subtle.generateKey({ name: 'AES-GCM', length: 256 }, true, ['encrypt','decrypt']) const iv = crypto.getRandomValues(new Uint8Array(12)) const cipher = await crypto.subtle.encrypt({ name: 'AES-GCM', iv }, key, dataBuffer) 密钥管理使用 IndexedDB 保存导出后的 JWK;权限撤销后可重新导入建议用户口令派生(PBKDF2)用于二次加密密钥材料验证与参数指标:加解密耗时、内存峰值、失败重试率环境:Chromium 系浏览器与 Safari 近期版本进行兼容性验证注意事项处理 IV 唯一性与重放风险;避免同一密钥重复 IV提供不支持环境的回退方案(如 Blob + 密文存储)

发表评论 取消回复