scrypt と、特定の状況での bcrypt ハッシュアルゴリズムに対するその利点のいくつかを読みました。
とにかく、scryptはまだ広く使われていないようです。これまでに.NET実装(C#で支持)を見た人はいますか?
最後に、C#のscryptの実装を CryptSharpライブラリ で見つけました。
ライブラリはオープンソースであり、 ISCライセンス を使用しています。
バージョン履歴
1.2.0 2011年1月23日:
SCrypt KDFがCryptSharp.Utility.SCryptとしてサポートされるようになりました。
SCryptで必要なdjbのSalsa20を追加しました。
ここに.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);