【问题标题】:How to store passwords of other applications in my database? (encryption)如何在我的数据库中存储其他应用程序的密码? (加密)
【发布时间】:2013-10-31 09:00:58
【问题描述】:

我的应用程序连接到许多其他应用程序,因此我需要在我的数据库中存储其他应用程序的用户名/密码。

我不想将它们存储为纯文本,但我的应用程序需要向其他应用发送纯文本密码以进行身份​​验证。

请建议安全存储密码的最佳方式。

谢谢。

【问题讨论】:

  • 老实说,如果您真的发送(如“发送”的字面意思,即通过网络)明文密码,您也可以将明文密码存储在磁盘上。它更可能在通过网络发送一万次时被嗅探,而不是从本地计算机被盗。事实上,几乎保证会被嗅探。
  • 它可以通过 ssl 通道以“纯文本”形式发送,使用摘要认证,或其他需要纯文本作为输入但实际上并不通过网络发送纯文本的方法。
  • @bloy 我正在使用 SSL :)
  • 我试图在这里Encrypting user data for automatic login to third party system回答一个类似的问题。

标签: passwords


【解决方案1】:

对数据库中的敏感数据字段使用可逆加密(可能是 AES),并让您的应用在每次需要该值时对其进行解密。您需要以某种方式让您的应用程序可以访问加密密钥,但这可能应该在特定于部署的配置文件中。

如果有人获得了您的数据库转储而不是您的应用所在的文件系统的转储,这将保护您。

【讨论】:

    【解决方案2】:

    很少需要使用可逆加密策略来存储密码。存储密码的原因是用户可以在将来的某个时间向您证明他们的身份(对于“证明”的某些值),这通常可以使用像 MD5 或 SHA1 这样的单向哈希来完成。

    使用单向哈希存储您的密码确实保护您的用户免受入侵者访问您的系统,因为没有密钥可以让他们从加密密码中获取明文.

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 2020-03-20
      • 2016-12-25
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2012-04-07
      • 2021-12-31
      • 1970-01-01
      相关资源
      最近更新 更多