在遗留 SQL 服务器数据库中加密密码字段的简单方法

Simple way to Encrypt Password Field in Legacy SQL Server Database

我们有一个遗留应用程序将用户密码未加密地存储在数据库中。我们现在已经有相当多的客户加入,加密这个密码对他们来说是一件大事(足够公平)。目前它只是 SQL 服务器数据库 table 中的一个 Nvarchar(100) 字段。

情况是我们有多个客户端应用程序访问此数据库并根据此密码进行验证。

只是想获得有关如何在数据库中的该字段上实现加密而不必重写读取它的所有客户端应用程序的建议?更改客户端应用程序并非不可能,但我们正在尝试尽可能少地解决这个问题。

有什么想法吗?

不要那样做,存储密码的加盐、迭代 HMAC。使用 Bcrypt、password_hash、PBKDF2 或类似的东西。

如果 HMAC 没有加盐和迭代是不够的。简单地散列而不加盐会使散列密码容易受到彩虹 table 攻击。

立即转换现有密码