55

我已经阅读了scrypt以及在某些情况下它相对于bcrypt散列算法的一些优势。

无论如何,scrypt 似乎还没有被广泛使用。到目前为止,有没有人见过它的 .NET 实现(在 C# 中很受欢迎)?

4

3 回答 3

54

最后,我在CryptSharp library中找到了 C# 中的 scrypt 实现。
该库是开源的并使用ISC 许可证

版本历史

1.2.0 2011 年 1 月 23 日:
现在支持 SCrypt KDF 作为 CryptSharp.Utility.SCrypt。
添加了 SCrypt 所需的 djb 的 Salsa20。

于 2011-03-11T21:35:35.617 回答
21

如果像我一样,您通过快速谷歌(作为顶部链接出现)来到这个问题,您现在可以将 SCrypt 作为 Nuget 包下载到您的项目中。

PM> Install-Package Scrypt.NET

使用如下:

ScryptEncoder encoder = new ScryptEncoder();
string hashsedPassword = encoder.Encode("mypassword");

并比较

ScryptEncoder encoder = new ScryptEncoder();
bool areEquals = encoder.Compare("mypassword", hashedPassword);

Github链接在这里

于 2015-05-11T14:11:36.170 回答
19

这里有一个用于 .NET 的 SCrypt 的新实现:https ://github.com/replicon/Replicon.Cryptography.SCrypt

与 CryptoSharp 不同的是,它是一个很棒的库,它是作为一个封装在本地库周围的包装器来实现的。这允许它使用本机级指令(如 SSE2)来显着提高实现的性能。

缺点是它必须包含本机编译的程序集,检测正确的使用,解包,然后加载它。这意味着它并不适合所有环境,但它在工作的地方工作得很好。

于 2012-12-01T00:34:15.460 回答