似乎我创建的每个应用程序都需要能够发送偶尔的电子邮件,例如状态邮件。对于这个问题,假设我的应用程序是一个备份工具,本地安装在许多Windows客户端上,并且每个安装需要发送每日状态邮件。它可以安装在组织的服务器或私人计算机上。
我要求用户提供他拥有的电子邮件帐户的凭据(STMP主机、端口、用户名、密码、发件人地址)。我从像Atlassian Jira/Confluence或JFrog Artifactory这样的应用程序中复制了这种方法。他们在哪里以及如何存储SMTP密码呢?
我的当前理解是:盐/哈希方法在此不适用,因为我需要能够检索明文密码以实际发送电子邮件。我不想以明文形式存储密码,所以必须采用某种加密/解密方法(对吗?)。
我可以告诉用户不要使用他的主邮箱账户,而是使用一些次要帐户或者更好的是,设置一个专门供我的应用程序使用的特殊电子邮件账户。如果用户是组织的管理员,他可能能够在其交换服务器上设置电子邮件帐户或配置SMTP中继。但我知道自己和我私人用户,他们中的一些人仍然会使用他们的主要电子邮件帐户,因此我想尽一切办法尽可能地保护他们的凭据安全(我的意思是“遵循最佳实践”)。
最好情况下,我希望将加密后的密码存储在应用程序的数据库中。
我花了许多时间阅读stackoverflow上的问题,但我看不到共识(就像用户帐户登录凭据那样)。我觉得这很奇怪,因为我期望基本上每个开发人员迟早都会面临这个问题。
必须有一些最佳实践要遵循,一些已经建立的方法来解决这个问题,但我还没有找到它。
请指向SO / web上的资源,以解释如何解决此问题。如果可能,由该领域的某些专家编写。
我查看过的一些SO问题:
我要求用户提供他拥有的电子邮件帐户的凭据(STMP主机、端口、用户名、密码、发件人地址)。我从像Atlassian Jira/Confluence或JFrog Artifactory这样的应用程序中复制了这种方法。他们在哪里以及如何存储SMTP密码呢?
我的当前理解是:盐/哈希方法在此不适用,因为我需要能够检索明文密码以实际发送电子邮件。我不想以明文形式存储密码,所以必须采用某种加密/解密方法(对吗?)。
我可以告诉用户不要使用他的主邮箱账户,而是使用一些次要帐户或者更好的是,设置一个专门供我的应用程序使用的特殊电子邮件账户。如果用户是组织的管理员,他可能能够在其交换服务器上设置电子邮件帐户或配置SMTP中继。但我知道自己和我私人用户,他们中的一些人仍然会使用他们的主要电子邮件帐户,因此我想尽一切办法尽可能地保护他们的凭据安全(我的意思是“遵循最佳实践”)。
最好情况下,我希望将加密后的密码存储在应用程序的数据库中。
我花了许多时间阅读stackoverflow上的问题,但我看不到共识(就像用户帐户登录凭据那样)。我觉得这很奇怪,因为我期望基本上每个开发人员迟早都会面临这个问题。
必须有一些最佳实践要遵循,一些已经建立的方法来解决这个问题,但我还没有找到它。
请指向SO / web上的资源,以解释如何解决此问题。如果可能,由该领域的某些专家编写。
我查看过的一些SO问题: