回答:
BCrypt.netを探しているようです:
BCrypt.netは、OpenBSDのBlowfishベースのパスワードハッシュコードの実装であり、Niels ProvosとDavidMazièresによる「将来の適応可能なパスワード方式」で説明されています。これはDamien MillerによるjBCryptの直接の移植であり、同じBSDスタイルのライセンスの下でリリースされています。コードは完全に管理されており、リトルエンディアンのCLI実装で動作するはずです。Microsoft.NETとMonoでテストされています。
BCrypt.Netは現時点で最も人気のあるライブラリのようです
パスワードのハッシュに使用する方法の例を次に示します。
[TestMethod]
public void BCryptTest()
{
const string password = "PASSWORD";
const int workFactor = 13;
var start = DateTime.UtcNow;
var hashed = BCrypt.Net.BCrypt.HashPassword(password, workFactor);
var end = DateTime.UtcNow;
Console.WriteLine("hash length is {0} chars", hashed.Length);
Console.WriteLine("Processing time is {0} with workFactor {1}", end - start, workFactor);
Console.WriteLine("Hashed password: {0} ", hashed);
Console.WriteLine("correct password {0}", BCrypt.Net.BCrypt.Verify("PASSWORD", hashed));
Console.WriteLine("incorrect password {0}", BCrypt.Net.BCrypt.Verify("PASSWORd", hashed));
}
出力例:
hash length is 60 chars
Processing time is 00:00:01.0020000 with workFactor 13
Hashed password: $2a$13$iBqdG7ENBABEargiyzGlTexPsmviF/qrFxUZB2zce7HKF6MoBNhEq
correct password True
incorrect password False
PostgreSQL(pg_cryptoがある)からSQLite(持っていない)に何かを移動するときにBCrypt実装が必要だったので、自分で作成しました。このメッセージから、必要なのは私だけではないので、ライセンスを平手打ちしてリリースすることにしました。URLは次のとおりです。
http://zer7.com/software.php?page=cryptsharp
その背後にあるBlowfish実装は、Bruce SchneierのパブリックドメインC実装のポートであり、すべての公式テストベクトルで成功しています。
仕様に基づいて自分で記述したBCryptコード。また、長さが0から100のランダムなパスワードとソルトを生成し、それらを暗号化して、テストファイルに出力するPHPスクリプトも作成しました。C#コードは、これまでのところ100%一致しています。スクリプトを使用して、自分でテストしてください。
このライブラリには、.NetのSHA-1のみの実装(今日追加されました-私はすぐにC#でSCryptを実行する予定で、HMAC-SHA256を備えたPBKDF2が必要です)とは対照的に、任意のHMACで機能するPBKDF2コードも含まれています。必要に応じて、これに基づいたスキームを作成することもできます。
不正解です。以下をご覧ください
.Net Frameworkのすべての "Cng"(Cryptography Next Generation)ポストフィックスアルゴリズムでbcryptが使用されるようになりました。例:SHA256Cng。
実際、MS BCrypt(BestCrypt)はBlowfish暗号に基づいたものを参照していません-コメントをありがとう、RobbyD。
他の誰かが同じ混乱をする場合に備えて、答えを削除しません。
このMS BCryptCreateHash C ++関数を試したことがありますか?Windows Server 2008およびWindows Vistaに存在するようです。
また、おそらく次のMS C#BCryptNative.csクラスもチェックできます。