用户密码的存储,在系统文件中,在 public 文件或数据库中

Storing of user passwords, in system file, in public file or in database

我必须创建一个简单的安全程序,用于存储密码和使用身份验证机制。我只是不确定从三个选项中选择什么以及为什么 better/worse 优于其他选项。

对我来说,每个人都可以被认为是安全的,如果做得对,有些更容易实施,而且实施起来要快得多。我的三种可能性是:

对我来说,如果你应该处理多个使用 username/password 注册的客户,最好的方法是使用数据库,其中的密码也经过哈希处理和加盐处理。

你们中的任何人都可以发表评论 done/pro/cons 吗?

与其说在哪里存储密码,不如说如何存储它们。

如果你可以存储散列,因为你只需要验证密码,那么你绝对应该使用慢速密码散列函数,如 BCrypt、SCrypt、PBKDF2 或 Argon2,大多数实现都会自己添加一个独特的盐。

如果您需要找回明文密码,因为您必须登录第三方系统,那么您应该采取一切可能的措施来保护它们(加密 db/file,需要访问权限)。最安全的解决方案是,当用户想要访问密码存储时输入主密钥,因此系统本身无法解密它们。