【发布时间】:2012-06-12 12:31:17
【问题描述】:
password leak of LinkedIn 证明了安全地散列密码的重要性。但是,即使使用“普通”哈希算法(例如 MD5 和 SHA 系列)对密码进行哈希处理也不安全,因为它们针对速度进行了优化,允许黑客每秒计算 23 亿次哈希(蛮力)。
有些哈希算法使用起来更安全,因为它们的计算量更大,例如PBKDF2、Bcrypt、PBMAC 和scrypt。然而,这些散列算法似乎并未包含在 .NET 框架中。
那么,.NET 框架中包含哪些性能密集型哈希算法?
回答: PBKDF2 包含在框架中,this site shows how to use it properly。
【问题讨论】:
-
有趣的问题,由于同样的原因,我想知道同样的事情。 :)
-
没有什么是“安全的”。您选择的安全性将始终与其他要求(如速度、内存使用率、CPU 利用率等)进行权衡。您认为“足够安全”是基于 您的 要求 - 您没有没有提供。
-
@PeterRitchie:这就是我提到“更安全的哈希算法”的原因,这就是问题所在。
-
@Peter Ritchie 虽然我通常都抱着“自己动手”的态度;在哈希函数或任何与安全相关的情况下,除非您真的知道自己在做什么,否则我强烈建议您不要这样做。只是说';)
-
为什么这个问题被关闭了? .NET 框架中包含有限数量的散列算法,它们对密码散列的相对适用性是相当客观的。