Firefox必须存储密码。这完全是不安全的,但必须这样做,就是这样 我的C#app具有相同的要求(它是一种浏览器)。
Firefox不是以明文形式存储密码,而是对它们进行了一些混淆 这种混淆的最佳做法是什么?
例如,如果我理解的话,这是Firefox的策略:
我的理解是否正确?
有没有更好的策略,甚至是C#库?
Similar questions对于其他编程语言有不满意的答案,他们并没有像Firefox那样,只是建议使用rot13或base64,这使得自动恶意软件很容易识别出混淆密码未知的软件。 (只是搜索常用密码的base64值)
再一次:我知道,它不会抵抗任何攻击者。但如果Firefox cares我也应该这样做。
答案 0 :(得分:6)
您应该使用ProtectedData
class加密密码。
您可以指定DataProtectionScope.CurrentUser
使用当前用户的Windows登录密码加密数据,这样其他任何用户都无法对其进行解密(如果用户没有密码,这也有效)
答案 1 :(得分:1)
使用加密而不是混淆可能是最容易的。混淆代码通常会使某人在查看源代码时更难识别代码中的内容。但是,如果你不加密信息,人们仍然可以解决这个问题。
我的建议是使用AES-256或Tripple DES-128加密。
很容易,您可以将密码存储在文本文件中,然后加密。只有通过浏览器才能解密文件。