在某些情况下,我已阅读了scrypt及其一些优于bcrypt哈希算法的优势。scrypt的.NET实现
无论如何,它似乎scrypt还没有被广泛使用。到目前为止,有没有人看到它的.NET实现(在C#中受青睐)?
在某些情况下,我已阅读了scrypt及其一些优于bcrypt哈希算法的优势。scrypt的.NET实现
无论如何,它似乎scrypt还没有被广泛使用。到目前为止,有没有人看到它的.NET实现(在C#中受青睐)?
最后,我在CryptSharp library的C#中发现了一个scrypt的实现。
该库是开源的,使用ISC license。
版本历史
1.2.0 2011年1月23日:
的SCrypt KDF现在支持为CryptSharp.Utility.SCrypt。
增加了djb的Salsa20,需要SCrypt。
有用于.NET这里一个新的实现SCrypt的:https://github.com/replicon/Replicon.Cryptography.SCrypt
不像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);
实测值链接到[原纸](http://www.bsdcan.org /2009/schedule/attachments/87_scrypt.pdf)(从您发布的帖子中删除了几个链接) – Cameron 2011-01-30 22:30:45
我不确定有多少s密码由好的密码学家进行了审查。在相信加密之前,审查是非常重要的。 – CodesInChaos 2011-01-30 22:36:40
@Cameron:这与Tarsnap网站所反映的不一样:http://www.tarsnap.com/scrypt/scrypt.pdf? – 2011-01-30 22:38:57