2012-06-08 40 views
12

password leak of LinkedIn证明了安全散列密码的重要性。然而,即使使用“散列算法”(例如MD5和SHA系列)的散列算法也不安全,因为它们针对速度进行了优化,这使得黑客每秒可以计算2300万次散列(强力)。.NET中包含哪些哈希算法对于密码哈希足够安全?

有哈希算法更安全使用,因为它们更加计算密集型,如PBKDF2Bcrypt,PBMAC和scrypt。但是,这些散列算法似乎并未包含在.NET框架中。

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

答案: PBKDF2包含在框架中并this site shows how to use it properly

+1

有趣的问题,我想知道的,因为同样的原因,同样的事情。 :) – pyrocumulus

+3

没有什么是“安全的”。您选择的安全性总是与其他要求(如速度,内存使用率,CPU利用率等)进行权衡。您认为“足够安全”是基于*您的*要求 - 您尚未提供。 –

+0

@PeterRitchie:这就是为什么我提到“更安全的哈希算法”,这就是问题所在。 – Steven

回答

-1

没有散列算法是100%安全的。 linkedin hack更多地是由于基础架构/代码安全而不是哈希算法。任何散列值都可以计算,散列algortihm越复杂,花费的时间越长。碰撞攻击等一些攻击在更复杂的散列上实现并不太慢。

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

+5

我不认为史蒂文正在考虑选择安全的哈希算法将保护他免受黑客攻击。但是,如果您的数据库访问受到威胁,它可以保护他。 LinkedIn使用SHA1(!!)哈希无盐(!!);这是令人难以置信的糟糕。史蒂文想选择一个更安全的算法,他是正确的。没有什么是100%安全的明显;你只能试图让一个哈希值在可行的时间内被强制执行的可能性很小。 – pyrocumulus

+0

嗯,我真的想让我的用户列表可以从网站公开访问,并且包含哈希密码,因为没有人可以解密它们。不,当然不是,只是在开玩笑:-P。 @云是绝对正确的,但错误在我身上。我应该在描述我的问题时做得更好,我知道这一点,但这对我来说非常明显,很容易忘记。 – Steven

+1

但是,与LinkedIn所做的相比,攻击体面的哈希值要花费至少十亿美元。 – CodesInChaos