共用方式為


SqlMembershipProvider.PasswordFormat 屬性

定義

取得可指出在 SQL Server 成員資格資料庫中用來儲存密碼之格式的值。

public:
 virtual property System::Web::Security::MembershipPasswordFormat PasswordFormat { System::Web::Security::MembershipPasswordFormat get(); };
public override System.Web.Security.MembershipPasswordFormat PasswordFormat { get; }
member this.PasswordFormat : System.Web.Security.MembershipPasswordFormat
Public Overrides ReadOnly Property PasswordFormat As MembershipPasswordFormat

屬性值

其中一個 MembershipPasswordFormat 值,指出在 SQL Server 資料庫中用來儲存密碼之格式。

範例

下列程式代碼範例顯示 ASP.NET 應用程式 Web.config 檔案區段中 的成員資格 專案 system.web 。 它會指定應用程式的實體, SqlMembershipProvider 並將密碼格式設定為 Hashed

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">  
  <providers>  
    <add name="SqlProvider"  
      type="System.Web.Security.SqlMembershipProvider"  
      connectionStringName="SqlServices"  
      enablePasswordRetrieval="false"  
      enablePasswordReset="true"  
      requiresQuestionAndAnswer="true"  
      passwordFormat="Hashed"  
      applicationName="MyApplication" />  
  </providers>  
</membership>  

備註

僅使用 HashedClearEncrypted 不安全。 Hashed 密碼會使用單向哈希演算法和儲存在資料庫中時隨機產生的 Salt 值進行哈希。 驗證密碼時,系統會使用資料庫中的 Salt 值來雜湊密碼以供驗證。 您無法擷取雜湊的密碼。 Encrypted 密碼不會被視為安全,因為洩漏資料庫內容的缺口也可以公開加密密鑰。 這表示您的加密密碼可以解密並公開。

PasswordFormat 是在 ASP.NET 應用程式的 Web.config 檔案的 providers 區段中指定。

EncryptedHashed 密碼預設會根據組態中 machineKey 元素中提供的資訊進行加密或哈希。 請注意,如果您為 validation 屬性指定的值3DES,或未指定任何值,則會使用SHA1演算法來哈希哈希哈希密碼。

您可以使用成員資格元素的 屬性來定義 hashAlgorithmType 自定義哈希演算法 , (ASP.NET 設定架構) 組態專案。 如果您選擇加密,默認密碼加密會使用 AES。 您可以藉由設定 decryptionmachineKey 組態項目的 屬性來變更加密演算法。 如果您要加密密碼,則必須為 decryptionKeymachineKey 元素中的屬性提供明確的值。 使用具有 ASP.NET 成員資格的加密密碼時,不支援屬性的AutoGeneratedecryptionKey預設值。

由於 SHA1 的衝突問題,Microsoft 建議您使用以 SHA256 或更好的加密方式為基礎的安全性模型。

適用於

另請參閱