如何使用C#中的PBKDF2 HMAC SHA-256或SHA-512在salt和迭代中散列密码?

jps*_*ook 11 c# asp.net encryption

我想找到一个解决方案或方法,允许我添加盐并控制迭代次数.原生Rfc2898DeriveBytes基于HMACSHA1.理想情况下,使用SHA-256或SHA-512将使系统面向未来.

这是我到目前为止找到的最好的例子:http://jmedved.com/2012/04/pbkdf2-with-sha-256-and-others/ 但是当我使用SHA-256运行它时它实际上比SHA-512.我使用64k迭代,一个盐的guid和不同长度的密码进行比较.

我也找到了这个解决方案:http: //sourceforge.net/projects/pwdtknet/ ,它有完整的源代码.它看起来更强大.

到目前为止,我无法从它们中获得相同的输出.

jps*_*ook 4

PWDTK.NET 库(http://sourceforge.net/projects/pwdtknet/)似乎是我能找到的唯一实现 PBKDF2 HMAC SHA-512 并允许加盐和迭代的实现。我无法找到 PBKDF2 HMAC SHA-512 的测试向量进行测试。

令我惊讶的是,没有更多的开发人员在使用它。

不太喜欢回答我自己的问题,但由于评论已退化为关于速度的讨论,而且还没有其他人回答,我也可以。

感谢所有发表评论的人。

  • 开发者大家好,我是 HDizzle,PWDTK.NET 的作者。关于测试向量的稀缺性,您是正确的,因此我对框架进行了编码,以便函数、属性等与此处规范中的内容相匹配:http://www.ietf.org/rfc/rfc2898.txt 以及那些具有欢迎有一点数学知识的人将代码映射到数学上。我意识到测试向量将是理想的解决方案,但我不得不尽力而为。我还没有发现有人在 PWDTK 中发现错误,而且源代码已经被很多人下载,所以这是一个好兆头!希望您喜欢 PWDTK! (3认同)
  • 您可以通过 NuGet 安装 PWDTK.NET 包;-) (2认同)