【问题标题】:mechanism for hashing passwords散列密码的机制
【发布时间】:2012-12-03 14:02:11
【问题描述】:

我有一个在 sql server 数据库中存储散列密码的 .net 应用程序。

密码使用盐进行散列,该盐与散列密码一起存储在数据库中。

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

第二个问题是,存储密码的推荐散列机制是什么?

【问题讨论】:

  • 你使用什么哈希算法?再次散列不太可能显着提高安全性;咨询Is double-hashing a password less secure...
  • 只要它们在 Internet 上不可见(并且永远不可见),存储站点特定盐的位置是否很重要?如果服务器闯入您的数据库和网络服务器,他们可能很容易获得您网站的特定盐。

标签: asp.net security hash passwords


【解决方案1】:

我倾向于使用 bcrypt 存储密码。它的 .NET 实现是 BCrypt.NET,因为此时它还没有出现在 .NET 框架中。您不想使用像 MD5 这样的通用哈希函数。另一个常用的算法是PBKDF2,但我个人没有在.NET中使用过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-04
    • 2011-02-18
    • 1970-01-01
    • 2012-12-10
    • 2015-08-13
    • 2012-05-30
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多