1.属性值
一个 MembershipPasswordFormat 值,表示用于在 SQL Server 数据库中存储密码的格式。
2.备注
SQL Server 成员资格提供程序支持 Clear、Encrypted 和 Hashed 密码格式。Clear 密码以明文形式存储,可提高密码存储和检索的性能,但安全性较低,因为如果 SQL Server 数据库的安全受到威胁,可轻松读取密码。Encrypted 密码在存储时加密,并可解密以进行密码比较或密码检索。此类密码在存储和检索时需要进行额外的处理,但比较安全,在 SQL Server 数据库的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希计算。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。
ASP.NET 应用程序的 Web.config 文件的 providers 节中指定了 PasswordFormat 值。
Encrypted 和 Hashed 密码默认情况下基于配置的 machineKey 元素中提供的信息进行加密或哈希计算。请注意,如果为 validation 属性指定了 3DES 值,或者没有指定值,则将使用 SHA1 算法对哈希密码进行哈希计算。
可使用 membership 元素(ASP.NET 设置架构) 配置元素的 hashAlgorithmType 属性定义一个自定义哈希算法。如果选择加密,默认密码加密则使用 AES。可以通过设置 machineKey 配置元素的 decryption 属性更改加密算法。如果要对密码进行加密,则必须为 machineKey 元素中的 decryptionKey 属性显式提供一个值。对 ASP.NET 成员资格使用加密密码时不支持 decryptionKey 属性的 AutoGenerate 默认值。