繁体   English   中英

第三方集成的双向密码加密

[英]Two way password encryption for third party integration

我的代码需要连接到IMAP和SMTP服务器,以定期发送和接收电子邮件,当前每3分钟左右一次。 典型的用户流程如下

  1. 登录
  2. 通过输入IMAP和SMTP详细信息(包括emailId和密码)来集成电子邮件。
  3. 转到数据

在后台,我运行了一个石英调度程序,该调度程序会定期从IMAP服务器提取电子邮件。 Web UI和Crystal Scheduler在单独的VM中运行,并在REST上相互通信。

在这种情况下,保护用户的电子邮件凭据的好方法是什么? 散列的一种方法将无济于事,因为我再也不想向用户询问密码了,但是我需要提供凭据才能在IMAP上进行连接

当然,确保密码安全的最佳方法是“不返回原始密码”,但这超出了此问题的范围:-)

话虽如此,最好的选择是使用仅存在于服务器上(但不与应用程序一起部署)的私钥在应用程序代码侧对密码进行加密。 您可以看一下Jasypt,它是用于Java加密的工具。 另外,您可能需要考虑将密钥的密码短语分为两部分:一部分来自属性文件中的某个配置文件,另一部分可能来自数据库本身。

如果应用程序在客户端计算机上运行,​​请使用用户选择的主密码对密码进行加密。 这允许用户锁定应用程序。

如果应用程序在服务器上运行,请确保通过HTTPS发送密码,或者至少使用不对称的公共密钥对密码进行加密,然后在服务器上对其进行解密。

使用私钥存储使用AES或其他良好加密算法加密的密码,只是为了防止以纯文本形式存储它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM