SQL Server 2008中用什么数据类型来存储哈希密码?

3

我目前正在构建一个登录流程,决定将用户密码与盐组合使用哈希密码存储在数据库中。只是想知道存储哈希密码和盐的数据类型是Varchar还是NVarchar足够?

编辑:我根据以下链接进行操作 在SQL Server中存储密码

3个回答

4

当我们使用SQL成员身份验证时,Microsoft使用Nvarchar。请看下面的图片:

enter image description here


只是一个问题,我在数据库中存储了哈希和盐。当用户输入用户名和密码时,我首先必须从数据库中检索盐值,然后使用此值创建哈希与用户输入的密码进行比较,以检查其是否与数据库中的哈希值匹配。 - StevieB
1
为什么不使用内置的ASP.NET 2.0成员资格和角色教程系列?http://weblogs.asp.net/scottgu/archive/2006/05/07/ASP.NET-2.0-Membership-and-Roles-Tutorial-Series.aspx - Muhammad Akhtar
这张图片中的 PasswordFormat 是什么? - Cody

2
您的密码哈希值应该具有统一的字符串长度,并表示为十六进制或base64文本(或其他单字节字符表示)。

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

因此,char就足够了。

只是一个问题,我在数据库中存储了哈希和盐。当用户输入用户名和密码时,我首先必须从数据库中检索盐值,然后使用此值创建哈希与用户输入的密码进行比较,以检查其是否与数据库中的哈希值匹配。 - StevieB
没错。在某个时候,您必须将盐(来自数据库或其他来源)与用户的密码组合起来,进行哈希处理并进行比较。您还可以选择在存储过程中执行此操作,这将增加安全性,因为您不必从数据库中取出盐。请参见:http://msdn.microsoft.com/en-us/library/ms174415.aspx - Paul Sasik

1

使用 varchar 数据类型

-- 咕噜咕噜 --

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


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