2

我的 aspnet_Membership 表中有一个 SHA1 密码和 PasswordSalt。但是,当我从服务器运行查询(一个 Sql 查询)时,读者会发现 pass 已作为其明文等效项返回。

我想知道我的 web.config 配置是否导致了这种情况?

<membership defaultProvider="CustomMembershipProvider" 
                userIsOnlineTimeWindow="20"
                hashAlgorithmType="SHA1">
      <providers>
        <clear/>
        <add  name="CustomMembershipProvider"
              type="Custom.Utility.CustomMembershipProvider"
              connectionStringName="MembershipDB"
              enablePasswordRetrieval="false"
              enablePasswordReset="true"
              requiresUniqueEmail="false"
              requiresQuestionAndAnswer="false"
              passwordStrengthRegularExpression=""
              minRequiredPasswordLength="1"
              minRequiredNonalphanumericCharacters="0"
              passwordFormat="Hashed"

提前致谢...

4

2 回答 2

1

您已经为会员提供者使用了正确的设置(特别是passwordFormat="hashed"),但您也有这一行:

type="Custom.Utility.CustomMembershipProvider"

设置passwordFormat="hashed"仅告诉您使用的任何会员提供商您希望对密码进行哈希处理。如果您使用自定义成员资格提供程序,则必须对该提供程序进行编码以支持该passwordFormat设置。

我 99% 确定您的密码以明文形式存储的原因是因为这CustomMembershipProvider就是编程要做的事情。

于 2010-04-08T19:57:37.897 回答
-3

好的,我想通了这一点。答案是“是的,web.config 中有一种机制可以自动解密我的 SHA1 密码。注意:

解密="自动"

<machineKey validationKey="MY Validateion Key"
            decryptionKey="My Decryption Key"
            validation="SHA1" decryption="Auto" />
于 2010-04-08T19:37:56.160 回答