MembershipPasswordFormat 枚举

定义

描述用于存储成员身份用户密码的加密格式。

public enum class MembershipPasswordFormat
public enum MembershipPasswordFormat
type MembershipPasswordFormat = 
Public Enum MembershipPasswordFormat
继承
MembershipPasswordFormat

字段

Clear 0

不安全,请勿使用。 密码未加密。

Encrypted 2

不安全,请勿使用。 使用由 machineKey 元素配置确定的加密设置对密码进行加密。

Hashed 1

使用 SHA1 哈希算法对密码进行单向加密。 可以使用 hashAlgorithmType 属性指定与 SHA1 算法不同的哈希算法。

由于与 SHA1 冲突,Microsoft 建议使用 SHA256。

示例

下面的示例演示了 Web.config 应用程序 ASP.NET 文件的部分中 (ASP.NET 设置架构) 元素的 machineKey 元素 system.web 。 它指定应用程序的 SqlMembershipProvider 实例,并将其密码格式设置为 Hashed

此示例使用 SHA1。 由于与 SHA1 冲突,Microsoft 建议使用 SHA256。

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

注解

SqlMembershipProvider类支持不同的密码存储格式,但你应仅使用 Hashed ; ClearEncrypted 不是安全的。 明文密码不安全,不应使用。 它们以纯文本格式存储。 加密密码不安全,因为泄露数据库内容也可以公开加密密钥。 这意味着可以对加密的密码进行解密和公开。 密码在存储时进行了加密,可对密码进行解密或密码检索。 哈希密码在存储在数据库中时使用单向加盐哈希进行加密。 验证密码时,会将其与 salt 值组合在一起,然后对其进行哈希运算。 结果与用于验证的数据库中的值进行比较。 无法检索哈希密码。

备注

如果你不熟悉 ASP.NET 的成员资格功能,请参阅 "成员资格简介",然后继续。 有关与成员资格相关的其他主题的列表,请参阅 使用成员身份管理用户

适用于

另请参阅