scryptと、特定の状況でのbcryptハッシュアルゴリズムに対するその利点のいくつかについて読みました。
とにかく、scryptはまだ広く使われていないようです。誰かがこれまでにそれの.NET実装(C#で好まれている)を見たことがありますか?
最後に、 CryptSharpライブラリのC#でscryptの実装を見つけました。
ライブラリはオープンソースであり、ISCライセンスを使用しています。
バージョン履歴
1.2.0 2011年1月23日:
SCryptKDFがCryptSharp.Utility.SCryptとしてサポートされるようになりました。
SCryptに必要なdjbのSalsa20を追加しました。
私のように、クイックグーグル(トップリンクとして表示されます)を介してこの質問に到達した場合は、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);
ここに.NET用のSCryptの新しい実装があります:https ://github.com/replicon/Replicon.Cryptography.SCrypt
優れたライブラリであるCryptoSharpとは異なり、これはネイティブライブラリのパッケージラッパーとして実装されます。これにより、ネイティブレベルの命令(SSE2など)を使用して、実装のパフォーマンスを大幅に向上させることができます。
欠点は、ネイティブのコンパイル済みアセンブリが含まれている必要があり、使用する適切なアセンブリを検出し、パッケージを解除してからロードする必要があることです。つまり、すべての環境に理想的というわけではありませんが、機能する場所ではうまく機能します。