.NET实现的scrypt

在某些情况下,我已经阅读了有关scrypt和它的一些优于bcrypt散列algorithm的优点。

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

最后,我在CryptSharp库中的C#中find了一个scrypt的实现。
该库是开源的,使用ISC许可证 。

  • CryptSharp

版本历史

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

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

与CryptoSharp不同,CryptoSharp是一个很好的库,它是作为一个本地库的打包包装来实现的。 这使得它可以使用原生级别的指令(如SSE2)来提高执行的性能。

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

如果像我一样,你通过一个快速的谷歌来到这个问题上(作为顶级链接),现在你可以将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链接在这里