0

什么是 Asp.net Membership 中的 Salt 密钥以及为什么使用此密钥。

4

4 回答 4

2

加盐是使用附加值(在您的情况下为盐键)对密码进行哈希处理以使其更难破解的过程。这有几个原因。其中两个是:

  1. 没有随机密钥散列的给定密码将散列为给定值,x. 存在许多查找(彩虹)表,其中列出了常见密码及其未加盐的哈希值。如果您的数据库遭到破坏,只需在线查找弱密码哈希就可以很容易地破解它们。
  2. 如果你不散列你的密码并且你的数据库被盗了,就会有一群拥有相同弱密码的用户拥有相同的散列。这为黑客提供了一个开始破解的地方,因为一旦他们破解了公共哈希,他们就可以访问多个帐户。

请记住最后一件事:加盐是一种安全措施,但它不会使数据库安全。大多数散列函数旨在快速散列数据。这意味着暴力破解这些函数相对容易,因为这些函数针对速度进行了优化。保护密码的最佳方法之一是使用处理时间较长的函数对密码进行哈希处理。这使得暴力破解它们变得更加困难。一个需要 100 毫秒而不是 5 毫秒来散列的密码将对您的最终用户产生不明显的性能影响,但黑客暴力破解需要 20 倍的时间。这种技术与散列相结合,有助于确保用户数据的安全。


这是我最喜欢的关于该主题的文章之一:http: //crackstation.net/hashing-security.htm

于 2012-12-08T19:04:17.520 回答
1

它可以防止字典攻击,请参阅 http://en.wikipedia.org/wiki/Salt_(cryptography )

更多细节参见

http://blog.nerdbank.net/2009/06/reverse-engineering-aspnet-membership.html

于 2012-12-08T18:59:21.690 回答
0

盐只是一个随机数,您可以使用框架库中的 RNGCryptoServiceProvider 类生成好的随机数用作盐

于 2012-12-08T19:00:59.623 回答
0

Salt用于随机化哈希。因此,查找表、反向查找表和彩虹表等攻击变得无效。

为了更好地理解,我建议您阅读http://crackstation.net/hashing-security.htm上的文章

于 2012-12-08T19:05:12.970 回答