在我的应用程序中,密码已加密,如果用户忘记密码,则无法恢复密码。现在我们取消该用户帐户并创建一个新帐户。现在我想要一个合适的方法来恢复密码。登录使用Asp.net配置工具完成。如何使用此密码恢复密码?这有什么替代选择吗?如何在数据库中解密我的密码?
答案 0 :(得分:3)
这个想法是没有人可以解密密码(包括数据库所有者)。通常你会生成一个新密码&将其发送给用户并对其进行加密&将它放入数据库。
答案 1 :(得分:1)
正如其他人所说,希望密码是数据库中加密的一种方式。许多网站用于恢复密码的一种方法是生成用户主用户名和电子邮件地址的哈希值。让他们提供此信息,然后哈希。如果匹配,则生成一个新的随机密码,加密并覆盖旧密码。将用户的新密码通过电子邮件发送到他们最初提供的电子邮件地址,并在数据库中标记该行以强制他们在下次登录时更改密码(通常在手工生成密码时进行更改)。
我知道的一些网站允许您恢复密码,我认为他们使用可逆(即对称)密钥算法来生成密码。为了做到这一点,并且没有网站所有者可用,您需要用户提供两条信息(用户名和只有他们知道的盐),这些信息用于保护登录信息并可用于恢复它
您可以在MSDN上查看对称密钥加密以获取更多信息。但实际上,我建议使用此技术反对,如果可能,最好生成新密码。
答案 2 :(得分:0)
如何加密密码?它是单向加密,只能使用正确的密码解密吗?如果是这样 - 游戏结束。
您可以更改加密方法,以便可以使用密钥解密(密码不是密码,例如,可以是用户ID,生日和他输入的密码保存在未加密数据库中的组合)
然后,密码可以使用密钥解密,每个人都会很高兴。