首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储加密密钥?

如何存储加密密钥?
EN

Stack Overflow用户
提问于 2020-12-14 13:19:31
回答 1查看 765关注 0票数 1

我查看了许多密码管理器,比如守护者、1 password、secrets -我正在跟踪秘密--密码管理器来创建我自己的项目并尝试添加相同的功能,但是我不得不存储用户的数据,比如他/她的秘密、加密的支付秘密。我读过守护者这里的加密模型,但仍然不明白。在哪里存储服务器端加密密钥?在我的数据库中,我有一些用一个密钥对称加密的数据。而不是硬编码到我的代码,我正在寻找一种更安全的方式存储加密密钥。我可以把它安全地存放在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 20:03:56

这里的方法很简单。

您只向服务器发送加密数据以进行存储/备份。接收到的加密数据不带密钥。

您需要确保所有加密和解密都在用户设备上本地发生。因此,用户需要提供密钥。

用户不擅长提供高质量的密钥材料,因此,要求用户提供密码,接受该密码,并通过基于散列的密钥派生函数,其参数会使该函数慢下来(高操作,高mem要求)。像pbkdf2这样具有强PRF (如HMAC-SHA-2 )的算法就足够了。

更新:要回答您的具体问题,您需要执行以下步骤,您将需要使用一个密码库,该库支持从密码和对称加密(如library )派生密钥。

  1. 第一次使用时向用户请求密码
  2. 通过密钥派生运行此密码,从中派生密钥:推导
  3. 用密钥执行用户数据加密:密码学
  4. 销毁密钥并将数据发送到服务器进行备份。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65289705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档