Firefox 必须存储密码。这是完全不安全的,但它必须这样做,仅此而已。
我的 C# 应用程序具有相同的要求(它是一种浏览器)。
Firefox 不是以明文形式存储密码,而是对其进行了一些混淆。
这种混淆的最佳实践是什么?
例如,如果我理解得很好,这里是 Firefox 的策略:
- 为应用程序的用户创建盐
- 对于每个密码,在存储/检索时在对称变换中使用盐
- 将密码文件存储在以 salt 命名的目录中。
我的理解正确吗?
有没有更好的策略,甚至是 C# 库?
其他编程语言的类似 问题也有不尽人意的答案,它们还不如 Firefox,只是建议使用 rot13 或 base64,这使得自动化恶意软件很容易识别未知软件中的混淆密码。(只搜索常用密码的base64值)
再说一遍:我知道,它不会抵抗任何攻击者。但如果Firefox 关心我也应该这样做。