Asp.net会员中的Salt Key是什么



什么是Asp.net成员身份中的Salt密钥以及为什么使用此密钥。

Salting是用一个附加值(在您的情况下是salt密钥)对密码进行哈希的过程,以使其更难破解。这有几个原因。其中两个原因是:

  1. 在没有随机密钥的情况下散列的给定密码将散列为给定值x。存在许多查找(彩虹)表,其中列出了常见密码及其无盐散列。如果你的数据库被破坏,只需在网上查找弱密码哈希就可以很容易地破解
  2. 如果你不对密码进行散列,而你的数据库被盗,那么就会有一大群用户使用相同的弱密码,他们也会使用相同的散列。这为黑客提供了一个开始破解的地方,因为一旦他们破解了常见的哈希,他们就可以访问多个帐户

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


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

要防止字典攻击,请参阅http://en.wikipedia.org/wiki/Salt_(密码学)

有关更多详细信息,请参阅

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

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

Salt用于随机化散列。因此,像查找表、反向查找表和彩虹表这样的攻击变得无效。

为了更好地理解,我建议你在http://crackstation.net/hashing-security.htm

最新更新