同一散列算法中时差的原因是什么?

时间:2016-11-18 20:46:57

标签: hash hmac password-encryption pbkdf2

我在Codeproject中阅读了这篇文章:

盐渍-密码散列-否则-IT-右

我明白asp.net webforms的最佳哈希算法是 PBKDF2-HMAC-SHA512 。然后这个github实现:

My implementations of PBKDF2 in PHP, C#, Java, and Ruby.

它基于 PBKDF2-HMAC-SHA1

我搜索了一些可以帮助我根据 PBKDF2-HMAC-SHA512 制作哈希值的内容。

我在github上找到了这个库:

therealmagicmike/PBKDF2.NET

在这个库中我可以定义我的哈希算法,如 HMACSHA1 HMACSHA256 HMACSHA384 HMACSHA512 。< / p>

如您所知 HMACSHA1 HMACSHA512 更快。而且出于安全原因它并不好。

但我发现了一些我不知道的事情是真的与否!我已在同一页面中实现了这两种算法,并了解adriancs的算法比迈克的算法花费更长的时间。并且这与adriancs的文章不符合逻辑。

所以,我想知道哪种算法最慢,哪种算法更好?

任何帮助将不胜感激。

非常感谢。

1 个答案:

答案 0 :(得分:1)

很抱歉这么晚才找到。我是PBKDF2.NET的作者。速度差异归因于相等性比较。 Defuse的库实现了慢速比较功能,在这里我选择将所有自定义比较留给使用者。我的理由是,我不想创建具有其他非必需实用程序功能的库,而是希望提供算法的正确实现。特定应用程序是否需要慢速比较确实取决于该应用程序,因此我将其排除在外。