web-dev-qa-db-ja.com

scryptの.NET実装

scrypt と、特定の状況での bcrypt ハッシュアルゴリズムに対するその利点のいくつかを読みました。

とにかく、scryptはまだ広く使われていないようです。これまでに.NET実装(C#で支持)を見た人はいますか?

56
Martin Buberl

最後に、C#のscryptの実装を CryptSharpライブラリ で見つけました。
ライブラリはオープンソースであり、 ISCライセンス を使用しています。

バージョン履歴

1.2.0 2011年1月23日:
SCrypt KDFがCryptSharp.Utility.SCryptとしてサポートされるようになりました。
SCryptで必要なdjbのSalsa20を追加しました。

53
Martin Buberl

ここに.NETのSCryptの新しい実装があります: https://github.com/replicon/Replicon.Cryptography.SCrypt

優れたライブラリであるCryptoSharpとは異なり、これはネイティブライブラリのパッケージ化されたラッパーとして実装されます。これにより、ネイティブレベルの命令(SSE2など)を使用して、実装のパフォーマンスをかなり向上させることができます。

欠点は、コンパイルされたネイティブアセンブリを含み、使用する適切なアセンブリを検出し、パッケージ化を解除してからロードする必要があることです。つまり、すべての環境に理想的というわけではありませんが、機能する場所でうまく機能します。

20
mfenniak

私と同じように、クイックグーグル(トップリンクになりました)からこの質問にアクセスした場合、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リンクはこちら

18
VictorySaber