我需要我的应用程序能够记住用户的用户名和密码,这样用户以后就不必再输入了。
显然,为了"记住"用户名和密码以备将来使用,这意味着我的应用程序必须以某种方式将用户名和密码存储到磁盘上。
这通常是如何完成的?我知道Pidgin以纯文本形式存储用户名和密码。如果可能的话,我想避免这种情况。有更好的方法吗?
编辑:我的目标平台是Windows。
首先,请注意,在本地存储名称和密码的方法都不安全。混淆和/或加密(我认为这是强制性的)将防止随意的窥探,但数据必须在本地解密才能有用,而且这个过程可以被坚定的黑客复制。您应该始终让用户选择退出(或选择加入)此方案。(这是浏览器通常所做的。)
如果使用名称/密码与服务器通信,更好的方法是在成功登录后从服务器获取身份令牌,并将其存储在本地。这样,即使加密被破坏,用户的登录凭据也不会受到损害(尽管对帐户的访问可能会受到损害,至少在令牌被撤销之前是这样)。
编辑:由于您的目标是Windows,请考虑使用数据保护API。
假设您需要存储外部服务的凭据,例如存储电子邮件帐户用户名和密码,则安全本地存储的唯一选项是在将相关凭据写入文件之前对其进行加密。
你选择什么加密方法本身就是一个问题。
将注意力集中在选择一种不能在合理时间内强制使用的加密机制上,并选择一种允许直接设置和更改密钥长度的加密机制。