MembershipPasswordFormat 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
描述用于存储成员身份用户密码的加密格式。
public enum class MembershipPasswordFormat
public enum MembershipPasswordFormat
type MembershipPasswordFormat =
Public Enum MembershipPasswordFormat
- 继承
字段
Clear | 0 | 不安全,请勿使用。 密码未加密。 |
Encrypted | 2 | 不安全,请勿使用。 使用由 machineKey 元素配置确定的加密设置对密码进行加密。 |
Hashed | 1 | 使用 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
; Clear
而 Encrypted
不是安全的。 明文密码不安全,不应使用。 它们以纯文本格式存储。 加密密码不安全,因为泄露数据库内容也可以公开加密密钥。 这意味着可以对加密的密码进行解密和公开。 密码在存储时进行了加密,可对密码进行解密或密码检索。 哈希密码在存储在数据库中时使用单向加盐哈希进行加密。 验证密码时,会将其与 salt 值组合在一起,然后对其进行哈希运算。 结果与用于验证的数据库中的值进行比较。 无法检索哈希密码。
备注
如果你不熟悉 ASP.NET 的成员资格功能,请参阅 "成员资格简介",然后继续。 有关与成员资格相关的其他主题的列表,请参阅 使用成员身份管理用户。