我将密码与用户登录一起散列,并将其保存在数据库中,长度为20个字节的VARBINARY。
现在,我正在尝试在asp.net中构建Login页面。如何从数据库中获取密码值以将其与用户提供的密码值进行比较?我使用SqlDataReader来读取数据库。
此致
Bartosz
答案 0 :(得分:1)
您需要将这些存储在包含明文用户名的列的表中,以便根据用户尝试登录获取哈希值。并将散列输入与散列存储的输入进行比较。
答案 1 :(得分:0)
您不要撤消数据库密码并将其与输入进行比较。
您对输入进行哈希处理并将其与密码进行比较。如果两个哈希匹配,则假设它是相同的密码 1 。
1 从技术上讲,根据您的哈希函数,它可能不是,因为用户可能随机输入的密码哈希值与真实密码相同,但这是迂腐的;)
答案 2 :(得分:0)
如果哈希与初始哈希相同,则使用用户输入的密码创建哈希(使用与创建初始哈希相同的算法)并在数据库中搜索 - >是的,它是相同的密码
哈希的想法是具有不可回复的功能 - >你可以检查它是否相同,但你永远无法重建输入数据。
答案 3 :(得分:0)
作为RB。说,你检索从数据库传递的散列。然后,您获取用户提供的密码,并使用您之前使用的相同哈希算法对其进行哈希处理。如果数据库中的哈希码与用户输入的密码的哈希码匹配,那么密码是正确的。