【问题标题】:Password Recovery using Asp.net使用 Asp.net 恢复密码
【发布时间】:2009-12-21 05:59:16
【问题描述】:

在我的应用程序中,密码是加密的,如果用户忘记了密码,就无法恢复。现在我们正在取消该用户帐户并创建一个新帐户。现在我想要一个正确的方法来恢复密码。登录是使用 Asp.net 配置工具完成的。如何使用它恢复我的密码?有没有其他选择?如何解密数据库中的密码?

【问题讨论】:

  • 您使用的是标准的 ASP.NET Membership 提供程序吗?

标签: asp.net vb.net security encryption


【解决方案1】:

这个想法是没有人可以解密密码(包括数据库所有者)。通常,您会生成一个新密码并将其发送给用户,然后对其进行加密并将其放入数据库中。

【讨论】:

    【解决方案2】:

    正如其他人所说,希望密码是数据库中加密的一种方式。许多网站用于恢复密码的一种方法是生成用户主用户名和电子邮件地址的哈希值。让他们提供此信息,然后对其进行哈希处理。如果匹配,为他们生成一个新的随机密码,加密并覆盖旧密码。将用户的新密码通过电子邮件发送到他们最初提供的电子邮件地址,并在数据库中标记该行以强制他们在下次登录时更改它(通常在手动生成密码的情况下完成)。

    我知道的一些网站允许您恢复密码,我假设它们使用可逆(即对称)密钥算法来生成密码。为了做到这一点,并且网站所有者无法使用它,您需要用户提供两条信息(用户名和只有他们知道的盐),这些信息用于保护登录信息,并可用于恢复它。

    您可以查看 MSDN 上的对称密钥加密以获取更多信息。不过,我确实建议反对使用这种技术,如果可能的话,最好生成一个新密码。

    【讨论】:

      【解决方案3】:

      您如何加密您的密码?它是一种单向加密,只能使用正确的密码解密吗?如果是这样 - 游戏结束。

      您可以更改加密方法,以便可以使用密钥对其进行解密(这不是密码,它可以是例如用户 ID、出生日期和他输入的密码的组合,该密码保存在未加密的数据库中) .

      然后,可以使用密钥解密密码,每个人都会很高兴。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多