我们正在使用管理用户文档的应用程序。我们正在实施的一项新功能-处理用户的电子邮件。
settings
选项卡中的用户输入他的凭据(登录名,密码,imapProvider)。然后,我们会将这些数据传递给另一个负责检索电子邮件的服务。
问题
必须有一种机制,一方面可以加密密码,另一方面可以解密。有什么想法如何实施吗?预先感谢。
有多种方法可以实现,我建议您查找SHA - 256
或其他方法。应该有很多有关单向功能和加密的信息。
您不必检查密码是否匹配,只需比较单向加密的输出。
伪代码:
password_string = ‘some password‘
encrypted_pw = sha256(password_string)
[...]
if encrypted_pw == encrypted_pw_to_compare:
[...]
这比以原始格式存储和处理用户数据更安全。
您可以让您的电子邮件服务生成一个RSA public/private密钥对。电子邮件服务将是唯一知道私钥(用于解密)的人,但它将与其他服务共享公钥(用于加密)。电子邮件登录数据应该以加密方式存储,并且最好不要存储在电子邮件服务上(如果电子邮件服务受到威胁,来自用户的电子邮件登录数据也不会那样)。使用公共密钥加密甚至可以在前端使用javascript进行。
但请注意,强烈建议您不要实施自己的加密堆栈,因为有千种方法可以将其弄错。除非您是密码学专家,否则请使用受信任的库。