如何在开源软件中安全地存储用户密码?

时间:2011-06-10 00:24:28

标签: encryption

我正在编写一个开源客户端软件,可以代表用户连接到Web服务。用户输入他的用户名和密码,软件使用这些凭据连接。

为方便起见,我可以选择软件保存用户的凭据,以便将来不需要再次输入。

但是,由于这是开源的,我不确定如何以合理安全的方式存储凭据。令我感到震惊的是,我用来加密密码的任何方法都可以轻松反转并用于解密密码。我意识到完美的安全性是不可能的,但是有比使用ROT13更好的做法,就像我现在正在做的那样吗?

1 个答案:

答案 0 :(得分:1)

Pidgin开发人员在开源客户端中有一个非常好的treatment of saved passwords;相同的推理将适用于Web服务客户端。

执行摘要:

  • 如果应用程序自行保存密码,请将其保留为纯文本,并将文件权限设置为只能由用户读取。 (这很明显设置文件很敏感!)
  • 提供与平台密钥环API(例如the Windows Data Protection API)或密钥环应用程序(例如KeePass)集成的选项。