database - 如何保护存储在数据库中的敏感密码

标签 database passwords encryption

我正在开发一个网络应用程序,最终用户必须为其创建一个帐户。这部分非常简单:我将使用 SHA-256 对他们的密码进行哈希处理,这样除了用户本人之外,没有人知道密码。现在是困难的部分。用户创建帐户后,他/她必须提供他/她的电子邮件服务器的密码。现在的问题是:如何妥善保护这个密码(密码将存储在数据库中)?如果我用 TripleDES 加密密码,任何开发人员或系统管理员都可以解密密码并查看它。处理此类问题的通常方法是什么?非常感谢。

最佳答案

通常的方法是使用从用户密码派生的对称加密 key 。执行此操作的标准方法是使用 RFC2898 中指定的算法。 ,它会生成一组可以用作 key 和 IV 的加密安全字节。它可能由适用于您的语言的库支持,例如 .NET,我使用的是 Rfc2898DeriveBytes。类。

当然,当您的用户更改密码时,您将必须解密任何现有的密文,然后导出新 key 并重新加密。

关于database - 如何保护存储在数据库中的敏感密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310798/

相关文章:

php - 如何搜索部分匹配的全文?

php - PHP 和 MySQL 的 MCQ 考试系统

database - 从内存而不是表中获取数据

database - 我们能否从 64 位客户端连接 32 位 Oracle 服务器,反之亦然?

cryptography - 2010 年及以后的密码破解

java - 强制其他应用程序从 java 进程读取文件

ios - SWIFT - Realm 数据库加密不起作用

java - 使用 AES 和长 key 进行一次分组密码解密

javascript - 我的 Greasemonkey 脚本在我的 PC 之外是否可见?

delphi - 我应该如何在本地存储多用户应用程序的密码?