要点をまっすぐに:
メンバーシッププロバイダーのパスワードハッシュ暗号化のアルゴリズムはどこに配置できますか?または:Microsoftチームは暗号化方式をどこに配置しましたか?
理由:私はそれをハッシュにすることを選択しましたが、私のデータベースに入れられたパスワードは明白です。
どうもありがとうございます :)
- - - アップデート
申し訳ありませんが、私は自分のカスタムプロバイダーを使用しています。
要点をまっすぐに:
メンバーシッププロバイダーのパスワードハッシュ暗号化のアルゴリズムはどこに配置できますか?または:Microsoftチームは暗号化方式をどこに配置しましたか?
理由:私はそれをハッシュにすることを選択しましたが、私のデータベースに入れられたパスワードは明白です。
どうもありがとうございます :)
- - - アップデート
申し訳ありませんが、私は自分のカスタムプロバイダーを使用しています。
これは、 add要素を使用して、webconfigのメンバーシッププロバイダー構成で指定されます。
<!-- SqlMembershipProvider syntax -->
<add name="string"
type="string"
connectionStringName="string"
applicationName="MyApplication"
commandTimeout
description
enablePasswordRetrieval="false"
enablePasswordReset="true"
passwordFormat="Hashed"
minRequiredPasswordLength
minRequiredNonalphanumericCharacters
passwordStrengthRegularExpression
/>
hashAlgorithmType
デフォルトのアルゴリズムは、メンバーシッププロバイダーで定義されているSHA1ですが、属性を使用する場合は、これをオーバーライドできます。
<membership
defaultProvider="provider name"
userIsOnlineTimeWindow="number of minutes"
hashAlgorithmType="SHA1">
<providers>...</providers>
</membership>
独自のアルゴリズムを提供する方法の詳細については、「アルゴリズム名の暗号化クラスへのマッピング」を参照してください。
この形式はパスワードの取得などをオーバーライドすることに注意してください。ハッシュされたパスワードは取得できません。パスワードがハッシュされたときにGetPasswordが呼び出された場合、プロバイダーは例外を返す必要があります(EnablePasswordRetrievalプロパティを参照)。
独自のMembershipProviderを作成した場合は、 「方法:メンバーシッププロバイダーの実装のサンプル」、特にメソッドEncodePassword
とを確認することをお勧めしますUnencodePassword
。
わかりませんが、「パスワード検索」が有効になっているため、パスワードはプレーンテキストで保存されていると思います。これを無効にするには、Web.configで<membership ... enablePasswordRetrieval ="False"/>を設定します。
これは、XML構成のプロバイダーのオプションです。ドキュメントには、「passwordFormat='hashed'」を設定しただけであることが示されています。