2012-12-16 150 views
1

我有一个.NET应用程序,它将散列的密码存储在sql服务器数据库中。哈希密码机制

密码使用一个salt进行散列,该salt使用哈希密码存储在数据库中。

作为额外的安全层,出于安全原因,我使用未存储在数据库服务器上的另一个站点范围密钥来散列哈希密码。由于系统负载均衡,我应该在哪里存储站点范围内的密钥?将其副本存储在每个.net应用程序的配置中(所有服务器上的值相同)。

第二个问题是,推荐的用于存储密码的哈希机制是什么?

+1

你使用什么散列算法?哈希不太可能会显着提高安全性;请教[双哈希密码不太安全...](http://stackoverflow.com/questions/348109/)。 –

+0

只要它们在互联网上不可见(并且永远不可见),您在哪里存储特定于网站的盐都很重要?如果一台服务器闯入你的数据库和你的网络服务器,他们可能很容易就可以获得你的网站特定的salt。 – scottheckel

回答

2

我倾向于使用bcrypt存储密码。它的.NET实现是BCrypt.NET,因为它现在不在.NET框架中。你不想使用像MD5这样的通用散列函数。另一种常用算法是PBKDF2,但我没有亲自在.NET中使用它。