在LinkedIn的密码泄露证明它是多么的重要安全散列密码。 然而,与盐甚至散列的口令不与“正常”散列算法(例如MD5和SHA家族)固定,因为它们是为速度,这允许黑客计算每秒(蛮力)23个亿散列优化。
有散列algoritms是使用更安全,因为他们更计算密集型的,如PBKDF2 , Bcrypt ,PBMAC和scrypt 。 这些散列算法然而,似乎并不包括在.NET框架。
所以,这就性能密集型的哈希算法包括在.NET框架?
答:PBKDF2包含在框架, 这个网站展示了如何正确使用它 。
在LinkedIn的密码泄露证明它是多么的重要安全散列密码。 然而,与盐甚至散列的口令不与“正常”散列算法(例如MD5和SHA家族)固定,因为它们是为速度,这允许黑客计算每秒(蛮力)23个亿散列优化。
有散列algoritms是使用更安全,因为他们更计算密集型的,如PBKDF2 , Bcrypt ,PBMAC和scrypt 。 这些散列算法然而,似乎并不包括在.NET框架。
所以,这就性能密集型的哈希算法包括在.NET框架?
答:PBKDF2包含在框架, 这个网站展示了如何正确使用它 。
我认为这不是一个真正的有意义的类名,但我认为它是包含在.NET框架。 根据多个来源, Rfc2898DeriveBytes实际上是一个PBKDF2执行。 MSDN是这么说的也是如此。
见为什么我需要使用Rfc2898DeriveBytes类(在.NET),而不是直接使用密码作为密钥或IV? 而在C#PBKDF2实现与Rfc2898DeriveBytes
例如。
此外还有:
http://bcrypt.codeplex.com/ (bcrypt)
http://www.zer7.com/software.php?page=cryptsharp (scrypt等)
没有散列algorith是100%的安全。 LinkedIn的黑客更起因于散列算法的基础设施/代码的安全性。 任何哈希可以计算出,它只是需要更长更复杂的散列algortihm是。 有些攻击如碰撞攻击实际上并不慢得多来完成对更复杂的哈希值。
我总是确保我散列密码(永远只是加密),限制对服务器的访问。 所有的开发workingfor我理解至少安全的基础(SQL注入,溢出等),任何高调的网站,我的工作是笔测试。