Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在旧式SQL Server数据库中加密密码字段的简单方法_Asp.net_Sql Server_Encryption_Password Encryption - Fatal编程技术网

Asp.net 在旧式SQL Server数据库中加密密码字段的简单方法

Asp.net 在旧式SQL Server数据库中加密密码字段的简单方法,asp.net,sql-server,encryption,password-encryption,Asp.net,Sql Server,Encryption,Password Encryption,我们有一个遗留应用程序,它将用户的密码未加密地存储在数据库中。我们现在已经有相当多的客户加入,加密这个密码对他们来说是一件大事(足够公平)。目前,它只是SQL Server数据库表中的一个Nvarchar(100)字段 情况是,我们有多个客户端应用程序访问此数据库并根据此密码进行验证 只是想得到关于如何在数据库中实现该字段加密的建议,而不必重写读取该字段的所有客户端应用程序?更改客户端应用程序不是不可能的,但我们正试图以尽可能少的麻烦解决这个问题 有什么想法吗?不要这样做,存储经过盐渍、迭代的密

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

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

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


有什么想法吗?

不要这样做,存储经过盐渍、迭代的密码HMAC。使用诸如Bcrypt、密码_散列、PBKDF2或类似的东西

如果未对HMAC进行盐析和迭代,则这是不够的。简单地进行散列而不进行盐析会使散列后的密码受到rainbow表攻击


现在转换现有密码

不要这样做,存储密码的附加、迭代HMAC。使用诸如Bcrypt、密码_散列、PBKDF2或类似的东西

如果未对HMAC进行盐析和迭代,则这是不够的。简单地进行散列而不进行盐析会使散列后的密码受到rainbow表攻击


现在转换现有密码

警告:我不是安全专家,但我不会在数据库中存储密码(加密或不加密)。相反,我将存储哈希代码。在SQL Server中,函数可用于生成此类代码。把这些散列看作是单向加密。当我必须检查一个密码时,首先我将生成哈希代码,然后将此代码与DB.Correct中的值进行比较。不确定具体是什么,它似乎只是支持标准哈希。如果不加盐和迭代,这是不够的。简单地进行散列而不进行盐析会使散列后的密码容易受到彩虹表攻击。多个客户端应用程序访问此数据库它们是什么类型的应用程序?所有.Net?它是什么版本的SQL Server?2008 ? 2012年??警告:我不是安全专家,但我不会在数据库中存储密码(加密或不加密)。相反,我将存储哈希代码。在SQL Server中,函数可用于生成此类代码。把这些散列看作是单向加密。当我必须检查一个密码时,首先我将生成哈希代码,然后将此代码与DB.Correct中的值进行比较。不确定具体是什么,它似乎只是支持标准哈希。如果不加盐和迭代,这是不够的。简单地进行散列而不进行盐析会使散列后的密码容易受到彩虹表攻击。多个客户端应用程序访问此数据库它们是什么类型的应用程序?所有.Net?它是什么版本的SQL Server?2008 ? 2012 ??