2011-06-10 67 views
2

我在写一段开源客户端软件,可以代表用户连接到Web服务。用户输入他的用户名和密码,并且软件使用这些凭证进行连接。如何在开源软件中安全地存储用户的密码?

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

但是,由于这是开源的,我不确定如何以合理安全的方式存储证书。它让我觉得任何我用来加密密码的方法都可以很容易地反转并用于解密密码。我意识到完美的安全是不可能的,但是有没有比使用ROT13更好的做法?

+0

根据您的平台,可能会有一个系统API以相对安全的方式存储和检索证书。 – zneak 2011-06-10 00:26:45

+0

如果你正在用伪随机生成器编写语言,你也可以这样做:srand([random_number_generated_at_compile_time]); passwd + = rand()+ rand();.这并不安全,但我猜测它总比没有好 – Maliafo 2016-10-31 10:32:20

回答

1

Pidgin开发者在开源客户端中有一个相当不错的treatment of saved passwords;相同的推理适用于Web服务客户端。

内容提要:

  • 如果应用程序保存密码本身,让他们以纯文本格式,并设置文件权限只能由用户是可读的。 (这表明设置文件很敏感!)
  • 提供与平台密钥环API(如the Windows Data Protection API)或密钥环应用程序(如KeePass)集成的选项。
相关问题