我正在为我工作的公司开发一个管理面板,并且想知道一些事情。我想增加员工的经验。我希望他们能够通过输入登录凭据连接到他们的电子邮件,然后在管理面板中阅读电子邮件。我需要帮助的是:
如果我建立 imap_open 连接,我需要纯文本密码(据我所知)。我无法安全地将密码保存在数据库中,因为我知道如果黑客掌握了数据将是一场灾难。
基本上,我想:
你们中有人知道怎么做吗?我在谷歌上搜索过,甚至在 stackoverflow 上看到了其他一些问题,但我似乎无法找到问题的答案。我永远不会将密码保存为纯文本。并且仅使用 COOKIE 或 SESSION 似乎很麻烦.. 管理员一直登录到他们的电子邮件,而我想要的只是在登录时为适当的管理员帐户加载电子邮件。
最佳答案
如果我理解正确,您想要:
以明文形式存储用户密码显然是禁忌。有不同的方法可以处理这个问题。应用程序实际上可以向用户请求密码,这是一个简单但不太方便的解决方案。
通常密码是使用单向散列方案(如 SHA256 或 bcrypt)存储的,但这意味着您只能检查密码是否与它们匹配;您无法检索密码并将其发送到其他地方。所以你必须求助于对称 key 加密。 您将加密的密码存储在某个地方(在数据库中),当您需要它时,您可以检索它、解密它并通过您的 IMAP 连接发送它。 加密的问题在于它依赖于 key ,该 key 可能会在某些时候受到损害,但如果您需要检索它,则不能选择散列。
另一件需要注意的事情是以明文形式发送密码的风险。如果您的服务器使用 SSL,这将非常小心。
关于php - imap_open 使用来自数据库的加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316897/