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

如何在Postgres中正确存储敏感数据?密钥管理相关疑问

关于pgcrypto加密敏感财务数据的疑问解答

1. 公钥、私钥及密码应存储于何处?

  • 公钥:可以直接存在数据库的用户关联表中,公钥仅用于加密,即使泄露也无法解密数据,安全风险极低。
  • 私钥:绝对不能明文存在服务器或数据库。最优方案是在客户端生成后由用户自行保管(比如导出存到本地文件、浏览器加密存储);如果要存在服务器,必须先用用户的加密密码派生的密钥对私钥再次加密,确保只有用户输入正确密码才能解密私钥。
  • 生成密钥的核心密码:这个密码是用户的“根密钥”,应用绝对不能存储任何形式的副本,必须由用户自己牢记,一旦丢失无法恢复数据,这是保证只有创建者能访问的核心前提。

2. 是否需要为每位用户生成独立的公钥、私钥及密码?

必须独立。每个用户的密钥对都是专属的,这样单个用户的密钥泄露只会影响自己的数据,不会波及其他用户;同时用户的加密密码也必须是独立设置的,不能共用统一密码,否则完全失去了端到端专属访问的意义。

3. 应在何时创建这些密钥及密码?是否在用户创建阶段?

建议在用户首次登录后引导设置加密密码,然后在客户端完成密钥对的生成(全程不要把私钥传到服务器),生成后仅将公钥上传至服务器关联用户存储。
不要在用户注册阶段就做这件事:一来用户注册时可能还没意识到加密密码的重要性,二来客户端生成密钥能彻底避免私钥接触服务器,最大程度降低泄露风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:43:13