我正在开发一个网络应用程序,最终用户必须为其创建一个帐户。这部分非常简单:我将使用 SHA-256 对他们的密码进行哈希处理,这样除了用户本人之外,没有人知道密码。现在是困难的部分。用户创建帐户后,他/她必须提供他/她的电子邮件服务器的密码。现在的问题是:如何妥善保护这个密码(密码将存储在数据库中)?如果我用 TripleDES 加密密码,任何开发人员或系统管理员都可以解密密码并查看它。处理此类问题的通常方法是什么?非常感谢。
最佳答案
通常的方法是使用从用户密码派生的对称加密 key 。执行此操作的标准方法是使用 RFC2898 中指定的算法。 ,它会生成一组可以用作 key 和 IV 的加密安全字节。它可能由适用于您的语言的库支持,例如 .NET,我使用的是 Rfc2898DeriveBytes。类。
当然,当您的用户更改密码时,您将必须解密任何现有的密文,然后导出新 key 并重新加密。
关于database - 如何保护存储在数据库中的敏感密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310798/