4

MVC のカスタム BasicAuthenticationAttribute で Apache の htpasswd ユーティリティを使用したいと考えています。ただし、htpasswd のドキュメントに基づいて、htpasswd ファイルと比較するためのパスワード ハッシュを計算する方法がわかりません。これを理解するのに役立つマネージ .NET ライブラリまたは簡単なドキュメントはありますか?

編集: Heinzi が指摘した質問は SHA では問題ありませんが、MD5 (APR1?) ハッシュ バリアントも処理できるようにしたいと考えています。いくつかのコード サンプルを見たことがありますが、わかりにくすぎて理解できません。Apache ドキュメントにリンクされている実際のコード ファイルについても同様です。

理想的には、どのクライアントの .htpasswd ファイルを取得して、認証のために自分の ASP.NET サイトにドロップできるようにしたいと考えています。どのハッシュ方式を使用するかについての制約はありません。

4

1 に答える 1

5

最近、Apache MD5 のサポートをCryptSharpに追加しました。これらのパスワードを計算して検証できます。これはバリアントであるため、Crypter.MD5.Crypt() メソッドに追加のパラメーターを指定する必要があります。

string cryptedPassword = Crypter.MD5.Crypt("HelloWorld", new CrypterOptions
  {
    { CrypterOption.Variant, MD5CrypterVariant.Apache }
  }));

検証します:

bool matches = Crypter.CheckPassword("HelloWorld", cryptedPassword);

Crypt() メソッド自体を使用して確認することもできますが、CheckPassword() は、Apache MD5、DES などであるかどうかを自動的に判断します。

お役に立てれば

ジェームズ

于 2013-05-07T12:51:15.150 に答える