我以后如何在普通tex(php)中需要它们时如何保存密码

时间:2012-02-07 21:23:32

标签: php database email encryption passwords

我正在使用php制作邮件客户端。我的问题是我需要将密码保存在数据库中,然后在发送邮件时以纯文本形式检索它们(我需要它们进行用户身份验证)。

有没有一种安全的方法可以做到这一点?

4 个答案:

答案 0 :(得分:2)

最好不要将密码存储为纯文本。

对于身份验证,生成一个哈希值,即密码的MD5,然后比较存储在数据库中的哈希值。如果哈希值匹配,则用户通过身份验证。

如果用户忘记了密码,则应重置密码。

答案 1 :(得分:2)

如果您确实需要存储秘密以用于以后的目的(不是如前所述的身份验证),您可以使用某种加密方式,如PHP的

为每个密码选择一个密钥并将该密钥存储在其他地方,然后存储您的密码。可能最好的选择是根据拥有密码的帐户的一些静态参数提取密钥。

解密密码也需要此应用程序逻辑。因此,如果de / en-cryption逻辑在与存储加密值的数据库隔离的某个地方运行,那就太好了。

答案 2 :(得分:0)

克雷格是对的。但是,我怀疑你真正的问题是“如何保存数据供以后使用?”

在这种情况下,您有几个选择:

  • 您可以使用MySQL,MSSQL,SQLite或Oracle等数据库。
  • 您可以写入服务器硬盘上的文件

答案 3 :(得分:0)

您可以从数据库中查询密码。

然后在获得它之后,您可以使用

fwrite(), fopen() 

打开并写在你的明文上,谷歌,他们有很多例子。但我同意@ craig1231,将明确的重要信息放入明文而不是散列它是不明智和安全的。