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