如何在服务之间安全地存储和传递第三方服务的密码?

2024-09-28 23:15:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在开发管理用户文档的应用程序。 我们正在实现一个新功能-处理用户的电子邮件。你知道吗

用户在settings选项卡中输入他的凭据(登录、密码、imapProvider)。然后我们将这些数据传递给另一个负责检索电子邮件的服务。你知道吗

问题

  • 我们不能存储和传递普通密码

必须有一个机制,将加密密码的一方和解密的另一方。有什么办法可以实施吗?提前谢谢。你知道吗


Tags: 数据用户功能应用程序密码settings电子邮件选项卡
2条回答

您可以使用电子邮件服务生成RSA public/private密钥对。电子邮件服务将是唯一知道私钥(用于解密)的服务,但将与其他服务共享公钥(用于加密)。电子邮件登录数据应该加密存储,最好不要存储在电子邮件服务上(如果电子邮件服务被破坏,来自用户的电子邮件登录数据也不会被破坏)。使用公钥的加密甚至可以在前端使用javascript完成。你知道吗

但请注意,强烈建议不要实现自己的加密堆栈,因为有成千上万种方法会使其出错。除非您是密码学专家,否则请使用可信库。你知道吗

实现这一点有不同的方法,我建议您查找SHA - 256或其他替代方法。应该有很多关于单向函数和加密的信息。你知道吗

您不必检查密码是否匹配,只需比较单向加密的输出即可。你知道吗

伪代码:

password_string = ‘some password‘
encrypted_pw = sha256(password_string)
[...]
if encrypted_pw == encrypted_pw_to_compare:
[...]

这比以原始格式存储和处理用户数据要安全得多。你知道吗

相关问题 更多 >