【问题标题】:Retrieve the password from developer point of the user, which is encrypted by ASP.NET membership provider从用户的开发人员点检索密码,该密码由 ASP.NET 成员资格提供程序加密
【发布时间】:2013-09-17 09:15:27
【问题描述】:

我在我的应用程序中使用 ASP.NET 成员资格。 客户注册的时候需要得到用户的密码,有没有什么算法可以得到解密后的密码。

例如:

1) 我们将在asp.net_membership 上创建一组表,其中存储userNamepasswordpassword keystrengthsecurity question

<membership>`enter code here`
    <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider"
             type="System.Web.Security.SqlMembershipProvider, System.Web, `enter code here              `Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
             connectionStringName="MMMS35.API"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="false"
             applicationName="Moose"
             requiresUniqueEmail="false"
             passwordFormat="Hashed"
             maxInvalidPasswordAttempts="5"
             minRequiredPasswordLength="7"
             minRequiredNonalphanumericCharacters="0"
             passwordAttemptWindow="1"
             passwordStrengthRegularExpression="" />
    </providers>
</membership>

【问题讨论】:

  • 为什么要获取用户的这些详细信息?该模块的制作使用户也受到保护。
  • 如果您需要在他注册时获取密码,那么您只需从他输入的文本框中获取密码即可。如果不是这种情况,请解释您的情况?
  • 密码不是encrypted 他们是hashed 散列密码的全部意义在于它不能(很容易)被解密。它是one way encryption。正如@FeliceM 所说,这样做的重点是让您无法使用用户密码。

标签: c# asp.net


【解决方案1】:

客户注册的时候需要得到用户的密码,有没有什么算法可以得到解密后的密码。

如果你想得到用户在注册时输入的密码,你或许可以这样做。例如,如果您使用 ASP.NET CreateUserWizard 控件,则可以访问 CreateUserWizard.Password 属性。不过,目前还不清楚你想用它做什么。

如果您想在用户注册后获取用户的密码,从安全角度来看,这可能不是一个好主意,如您问题的 cmets 中所述,您需要配置 MembershipProvider:

enablePasswordRetrieval="true"
passwordFormat="Clear" or "Encrypted"

【讨论】:

    猜你喜欢
    • 2012-06-12
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多