哪个.NET包含哈希算法足够安全,可以进行密码哈希?

LinkedIn的密码泄露certificate了安全地散列密码的重要性。 但是,即使使用“正常”哈希算法(例如MD5和SHA系列)对盐进行散列密码也不安全,因为它们针对速度进行了优化,这使得黑客每秒计算2300万次哈希(蛮力)。

有一些散列算法更安全,因为它们更加计算密集,例如PBKDF2 , Bcrypt ,PBMAC和scrypt 。 但是,这些散列算法似乎不包含在.NET框架中。

那么,.NET框架中包含哪些性能密集的哈希算法?

解答: PBKDF2包含在框架中, 本网站显示了如何正确使用它 。

我认为这不是一个有意义的类名,但我确实认为它包含在.NET框架中。 根据多个消息来源, Rfc2898DeriveBytes实际上是一个PBKDF2实现。 MSDN也这么说。

请参阅为什么我需要使用Rfc2898DeriveBytes类(在.NET中)而不是直接使用密码作为密钥或IV? 和C#中的PBKDF2实现与Rfc2898DeriveBytes

例如。

没有100%安全的散列算法。 与散列算法相比,linkedin hack更多是由于基础设施/代码安全性。 可以计算任何哈希值,只需要更长的时间,哈希算法就越复杂。 在更复杂的哈希上,诸如碰撞攻击之类的攻击实际上并不慢得多。

我总是确保我哈希密码(从不加密),限制对服务器的访问。 所有为我工作的开发人员至少理解安全性的基础知识(sql注入,溢出等),并且我工作的任何高调网站都经过笔测试。