MVC 4加密默认密码
问题描述:
我有一个需要用户登录的MVC 4 Web应用程序。大多数用户没有电子邮件帐户。如果有人忘记了他的密码,我该如何重置它?我找到的所有重置密码系统都需要某种电子邮件帐户。我只想简单一些,比如将其重置为默认密码,并且用户可以使用该默认密码登录后更改密码。问题是密码在SQL Server中被加密。我找不到一个加密密码的工具。MVC 4加密默认密码
答
首先,使用最广泛的认证实现需要相当长的时间以防止用户凭证存储在可逆(即平面文本或可以加密的东西)格式中。相反,您应该散列&盐平面文本凭据并与存储的值进行比较。
除了安全地重置用户凭据,您需要通过其他方式对其进行身份验证,这是您最常提到的通过电子邮件提及的方式,但如果这不可行,则应该查看其他带外方法的身份验证,可能会向用户发送带有一次性代码的SMS,或者让他们回答一系列安全问题。验证用户身份后,强制他们设置新密码并覆盖为用户存储的散列。
密码不应该加密 - 他们应该被散列(和盐渍)。如果你的用户没有电子邮件帐户,你应该问他们一个帐户的安全问题创建并允许他们根据该安全问题重置密码。也没有“默认密码” - 让他们马上提供新密码。 –