如何加密密码

5

如何在asp.net MVC中加密密码字段以存储为加密形式?

4个回答

3
典型的工作流程涉及生成盐值并使用它来哈希密码,然后将两者都存储在行中。这在许多地方都有详细记录,并且很容易搜索。
如果您真的只想快速进行哈希或加密而不需要盐,请查看FormsAuthentication.HashPasswordForStoringInConfigFile

1
提到盐值+1。未加盐的哈希表比加盐的更容易受到彩虹查找表的攻击。 - Tim

2
如果您担心在网络上传输明文,可以使用https。然后,无论您是否使用https,都要使用单向哈希算法,例如Sha256将密码“加密”并存储在数据库中(或者您正在使用的任何持久性存储)。当用户登录时,使用相同的算法将他们输入的文本转换为散列文本,并将散列文本与数据库中的散列文本进行比较。

1
我发现最简单的方法是使用 ASP.NET 的 Membership Provider。然后,您可以像这样在 web.config 中进行配置:
<system.web>
  <membership>
    <providers>
      <clear />
      <add 
        name="AspNetSqlMembershipProvider" 
        (...) 
        passwordFormat="Hashed" 
        (...) />
    </providers>
  </membership>


0
我找到的最佳方法(也是Facebook确切的方式)是:
当用户进入浏览器时,JavaScript首先进行加密,然后发送到应用程序,在MVC中进行加密,最后将其存储在您的数据库中。
只有当用户忘记密码需要登录时,才需要使用该密码。可以创建类似于密码重置的东西 =D。

http://forums.asp.net/t/1211478.aspx/1?How+do+I+use+Sha256+to+Encrypt+a+String+


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接