在数据库中存储用户的电子邮件密码最安全的方法是什么

时间:2018-07-18 15:41:44

标签: php encryption

我需要将用户的邮件密码存储在数据库中以便以后发送邮件,但是如何以安全的方式存储密码?

此密码不能被单手加密,因为以后需要它来使用SMTP触发电子邮件

已更新

实际上,在这种情况下,每次我触发电子邮件或使用大头针解密电子邮件密码时,我都可能要求输入密码。

如何使用密钥对字符串进行加密?

1 个答案:

答案 0 :(得分:2)

  

不能单手加密,因为以后需要密码才能连接到smtp

然后您继续说...

  

任何人都可以像md5一样解密,因为它仍然不安全,这可不是一种秘密

您不能以无法解密的方式加密某些东西,并且期望自己能够解密。

此外,MD5不是加密,而是哈希。单向功能。您不能从MD5中获取输出并确定地获取输入。这不可能。 的可能是从已知输入生成“彩虹表”并以这种方式反转。

您需要的是简单的对称加密。 AES通常是这样做的。这里最重要的是如何处理密钥,因为一旦有人拥有密钥,他们便可以解密数据。首先,请确保您为每个记录使用不同的键。您可以使用密钥派生算法来执行此操作。不过,您仍然需要保持主密钥的安全。

  

我需要将用户的邮件密码存储在数据库中,以便以后发送邮件

您绝对确定需要这样做吗?考虑替代方案:

  • 代表某人发送电子邮件。在发送电子邮件时,通常使用其名称,而不使用电子邮件地址,然后设置Reply-To以返回到原始用户。
  • 如果您在电子邮件服务器上得到授权,则可以代表某人发送电子邮件而无需其凭据。