Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包含.NET的哈希算法中哪些适合于密码哈希?_C#_.net_Security_Hash - Fatal编程技术网

C# 包含.NET的哈希算法中哪些适合于密码哈希?

C# 包含.NET的哈希算法中哪些适合于密码哈希?,c#,.net,security,hash,C#,.net,Security,Hash,事实证明,安全地散列密码是多么重要。然而,即使使用salt对密码进行散列,使用“普通”散列算法(如MD5和SHA系列)也不安全,因为它们优化了速度,允许黑客每秒计算23亿次散列(蛮力) 有一些散列算法使用起来更安全,因为它们计算量更大,比如PBMAC和。然而,这些散列算法似乎没有包含在.NET框架中 那么,.NET framework中包括哪些性能密集型哈希算法 回答:PBKDF2包含在框架中,并且。我认为它不是一个真正有意义的类名,但我确实认为它包含在.NET框架中。根据多个来源,实际上是一个

事实证明,安全地散列密码是多么重要。然而,即使使用salt对密码进行散列,使用“普通”散列算法(如MD5和SHA系列)也不安全,因为它们优化了速度,允许黑客每秒计算23亿次散列(蛮力)

有一些散列算法使用起来更安全,因为它们计算量更大,比如PBMAC和。然而,这些散列算法似乎没有包含在.NET框架中

那么,.NET framework中包括哪些性能密集型哈希算法


回答:PBKDF2包含在框架中,并且。

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

看 和


例如。

没有100%安全的哈希算法。linkedin黑客攻击更多的是由于基础设施/代码安全,而不是散列算法。任何散列都可以计算,只是需要的时间越长,散列算法就越复杂。一些攻击,如碰撞攻击,在更复杂的散列上完成的速度实际上并不慢

我总是确保我散列密码(从不只是加密),限制对服务器的访问。所有为我工作的开发人员都至少了解安全性的基本知识(sql注入、溢出等),我工作的任何高知名度站点都经过笔试。

还有:

(bcrypt)


(斯克里普特等)

有趣的问题,出于同样的原因,我想知道同样的事情没有什么是“安全的”。您选择的安全性将始终与其他要求(如速度、内存使用、CPU利用率等)进行权衡。。你认为“足够安全”是基于你的要求——你还没有提供。“PeterRitchie:这就是为什么我指的是“散列更安全的算法”,这就是问题所在。@ Peter Ritchie,而我通常都有“你自己的”态度;对于哈希函数或任何与安全相关的东西,我强烈建议不要使用,除非你真的知道自己在做什么。只是说,;)为什么这个问题是封闭的?.NET framework中包含的哈希算法数量有限,它们对密码哈希的相对适用性是相当客观的。我不认为Steven认为选择安全的哈希算法可以保护他免受黑客攻击。但是如果你的数据库访问被破坏,它会保护他。LinkedIn使用SHA1(!!)无盐散列(!!);那太糟糕了。史蒂文想选择一种更安全的算法,他这样做是对的。显然,没有什么是100%安全的;你只能设法使哈希在可行的时间内不太可能被强制执行。实际上,我想让我的用户列表可以从网站上公开访问,并包括哈希密码,因为没有人可以解密它们。不,当然不是,只是开玩笑:-P.@Cloud绝对正确,但错在我身上。在我的问题中,我本应该更好地描述我知道这一点,但这一点对我来说太明显了,很容易忘记。但是,与linkedin相比,攻击一个像样的哈希值的成本至少要高出10亿倍。