.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链接在这里
- 问题与LINQ实体和String.StartsWith
- 你使用TestInitialize或者testing类构造函数来准备每个testing吗? 为什么?
- 覆盖==运算符。 如何比较为空?
- Object.GetType()的性能
- 有关如何正确覆盖object.GetHashCode()的一般build议和指导原则
- 在EntityFramework.dll中发生未处理的“System.TypeInitializationException”typesexception
- 为什么C#编译器允许在IEnumerable <T>和TAlmostAnything之间进行显式转换?
- 编译错误:“显式实现接口时,”修饰符“public”对此项“无效”
- 从.NET应用引用Google的V8引擎