python - 如何在服务之间安全地存储和传递第三方服务的密码?
问题描述
我们正在使用管理用户文档的应用程序。我们正在实施的一项新功能 - 使用用户的电子邮件。
用户在settings
选项卡中输入他的凭据(登录名、密码、imapProvider)。然后我们将这些数据传递给我们的另一个服务,该服务负责检索电子邮件。
问题
- 我们无法存储和传递纯密码
必须有一种机制可以在一侧加密密码并在另一侧解密。任何想法如何实现它?提前致谢。
解决方案
您可以让您的电子邮件服务生成RSA 公钥/私钥对。电子邮件服务将是唯一知道私钥(用于解密)的服务,但会与其他服务共享公钥(用于加密)。电子邮件登录数据应加密存储,最好不要存储在电子邮件服务上(如果电子邮件服务受到威胁,来自用户的电子邮件登录数据也不会如此)。甚至可以在前端使用 javascript 使用公钥进行加密。
但请注意,强烈建议不要实现您自己的加密堆栈,因为有成千上万种方法会出错。除非您是密码学专家,否则请使用受信任的库。
推荐阅读
- python - 无法使用 python 访问 selenium 中的选择下拉列表中的选项-“元素当前不可见”
- shopify - 将侧边栏添加到 Debut Theme Shopify
- azure - Azure 身份验证重定向到不需要的 URL
- javascript - 组合二维数组然后按索引 0 排序的最快方法
- python - pyspark — 拆分后对 Array(StringType()) 类型列中的值求和的最佳方法
- c - 在十六进制编辑器上查找调试符号指向的变量的值
- android - 撰写 BasicTextField 焦点问题
- c# - 难以理解实现算法的逻辑 - C#
- bash - 学习 grep 命令并遇到了这个。它如何与尾巴结合使用?
- javascript - 如何使用 Node JS sdk 连接到 Web 套接字并在前端显示