在旧版SQL Server数据库中加密密码字段的简单方法

时间:2016-06-07 22:16:38

标签: asp.net sql-server encryption password-encryption

我们有一个遗留应用程序,用于将用户密码存储在未加密的数据库中。我们现在有很多客户登机,加密这个密码对他们来说是个大问题(足够公平)。目前,它只是SQL Server数据库表中的Nvarchar(100)字段。

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

只是想获得有关如何在数据库中对此字段实现加密的建议,而无需重写所有读取它的客户端应用程序?改变客户端应用程序并不是不可能的,但我们正试图尽量避免这种情况。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

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

如果HMAC没有盐渍和迭代,那还不够。只需在没有盐析的情况下散列,就可以将散列密码打开,以防止彩虹表攻击。

转换现有密码现在

答案 1 :(得分:-1)

  1. 将配置表添加到数据库以指定是否需要加密密码。默认为“不加密”

  2. 在密码表上添加“插入/更新触发器”,并根据配置#1,在插入/更新时加密数据

  3. 相应地更改您的申请。

  4. 在这种情况下,您仍然在触发器中使用加密算法,并且您需要使用权限使触发器安全。

    这些问题需要一些头脑风暴,希望我没有错过任何东西。