【问题标题】:SQL Server 2008 what DataType to store a hashpassword inSQL Server 2008 存储哈希密码的数据类型
【发布时间】:2011-10-14 07:30:01
【问题描述】:

我目前正在构建一个登录过程,并决定将我的用户密码存储在数据库中,其中包含一个哈希密码和一个盐。只是想知道存储 hashpassword 和 salt 的数据类型是 Varchar 还是 NVarchar 就足够了?

编辑:链接我基于此 storing passwords in SQL Server

【问题讨论】:

    标签: asp.net sql sql-server sql-server-2008


    【解决方案1】:

    微软在我们使用 SQL 成员时使用Nvarchar,看看下图

    【讨论】:

    • 大,只是一个问题,我将哈希和盐存储在数据库中。一个用户出现并输入他的用户名和密码。我首先必须从数据库中检索盐,然后使用这个值来创建用户输入密码的哈希值,然后我检查数据库中的哈希值?
    • 为什么不在 ASP.NET 2.0 成员资格和角色教程系列中使用构建? weblogs.asp.net/scottgu/archive/2006/05/07/…
    • 这张图片中的PasswordFormat是什么?
    【解决方案2】:

    密码的哈希值应该是统一的字符串长度,并表示为十六进制或 base64 文本(或其他一些每个字符一个字节的表示形式。)

    EDIT(您只需要每个哈希输出的统一长度的 char 类型!)

    所以 char 就足够了。

    【讨论】:

    • 大,只是一个问题,我将哈希和盐存储在数据库中。一个用户出现并输入他的用户名和密码。我首先必须从数据库中检索盐,然后使用这个值来创建用户输入密码的哈希值,然后我检查数据库中的哈希值?
    • 没错。在某些时候,您必须将盐(来自数据库或其他来源)与用户的密码结合起来,对其进行散列并进行比较。您还可以选择在存储过程中执行此操作,这将提高安全性,因为您不必从数据库中取出盐。见这里:msdn.microsoft.com/en-us/library/ms174415.aspx
    【解决方案3】:

    使用varchar 数据类型

    -- 呜呜呜--

    我需要 30 个字符才能发表回复

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 2018-01-17
      • 2015-10-07
      • 2019-07-31
      • 1970-01-01
      • 2011-02-19
      • 2021-06-17
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多