【问题标题】:MVC 4 Encrypt Default PasswordMVC 4 加密默认密码
【发布时间】:2016-03-15 16:36:43
【问题描述】:

我有一个需要用户登录的 MVC 4 Web 应用程序。大多数用户没有电子邮件帐户。如果有人忘记了他的密码,我该如何重置?我发现的所有重置密码系统都需要某种电子邮件帐户。我只想要一些简单的东西,例如将其重置为默认密码,并且用户可以在使用该默认密码登录后更改其密码。问题是密码在 SQL Server 中是加密的。我找不到加密密码的工具。

【问题讨论】:

  • 密码不应该被加密——它们应该被散列(和加盐)。如果您的用户没有电子邮件帐户,您应该在创建帐户时询问他们一个安全问题,并允许他们根据该安全问题重置密码。也没有“默认密码” - 让他们立即提供新密码。

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

首先,最广泛使用的身份验证实施会花费相当长的时间来防止用户凭据以可逆(即平面文本或可以加密的东西)格式存储。相反,您应该散列和盐平面文本凭据并与存储的值进行比较。

接下来要安全地重置用户凭据,您需要通过其他方式对其进行身份验证,这是您提到的最常通过电子邮件实现的方式,但如果这不可能,您应该查看其他带外方法身份验证,可能会向用户发送带有一次性代码的短信,或者让他们回答一系列安全问题。验证用户身份后,强制他们设置新密码并覆盖您为用户存储的哈希。

【讨论】:

    猜你喜欢
    • 2011-11-22
    • 2017-07-06
    • 2015-01-30
    • 2011-06-29
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多