php - imap_open 使用来自数据库的加密密码

标签 php imap imap-open

我正在为我工​​作的公司开发一个管理面板,并且想知道一些事情。我想增加员工的经验。我希望他们能够通过输入登录凭据连接到他们的电子邮件,然后在管理面板中阅读电子邮件。我需要帮助的是:

如果我建立 imap_open 连接,我需要纯文本密码(据我所知)。我无法安全地将密码保存在数据库中,因为我知道如果黑客掌握了数据将是一场灾难。

基本上,我想:

  • 使用 创建 imap_open 连接加密 密码。最好作为 bcrypt。

  • 你们中有人知道怎么做吗?我在谷歌上搜索过,甚至在 stackoverflow 上看到了其他一些问题,但我似乎无法找到问题的答案。我永远不会将密码保存为纯文本。并且仅使用 COOKIE 或 SESSION 似乎很麻烦.. 管理员一直登录到他们的电子邮件,而我想要的只是在登录时为适当的管理员帐户加载电子邮件。

    最佳答案

    如果我理解正确,您想要:

  • 将用户的密码安全地存储在他们的机器上
  • 用它来连接邮件服务器
  • 下载邮箱

  • 以明文形式存储用户密码显然是禁忌。有不同的方法可以处理这个问题。应用程序实际上可以向用户请求密码,这是一个简单但不太方便的解决方案。

    通常密码是使用单向散列方案(如 SHA256 或 bcrypt)存储的,但这意味着您只能检查密码是否与它们匹配;您无法检索密码并将其发送到其他地方。所以你必须求助于对称 key 加密。 您将加密的密码存储在某个地方(在数据库中),当您需要它时,您可以检索它、解密它并通过您的 IMAP 连接发送它。 加密的问题在于它依赖于 key ,该 key 可能会在某些时候受到损害,但如果您需要检索它,则不能选择散列。

    另一件需要注意的事情是以明文形式发送密码的风险。如果您的服务器使用 SSL,这将非常小心。

    关于php - imap_open 使用来自数据库的加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316897/

    相关文章:

    PHP imap_open() => [AUTHENTICATIONFAILED] for imap.gmail.com

    php - 使用 imap_open 连接到 PHP5 中的 Exchange 2007 服务器时出现问题

    php - PHP 中的 Google Analytics 事件跟踪不起作用

    imap - 使用 C# AE.Net.Mail 的 IMAP 在不支持基本身份验证后是否可以工作

    php - 如何在 PHP 中获取图像质量

    ruby - 在 ruby​​ 中从 iso-2022-jp 转换为 UTF

    php - GMAIL imap_open 远程规范无效 (errflg=2)

    php - 必须如何配置服务器才能通过 php 脚本连接到邮箱

    php - XML 中的非法非标准引号

    php - Kohana ORM 在选择时更改时区