如何在登录时阅读哈希密码?

时间:2016-05-20 15:43:35

标签: c# asp.net webforms

我已经用过了 http://jphellemons.nl/post/Easy-generate-SHA1-in-AspNet

要注册在注册时创建的密码,但是当我尝试登录时,它不会让我。

如何将哈希读取作为在提交并转换为哈希之前已经放入表单的普通文本?

@Edit。

虽然当我使用整个哈希文本时我可以使用哈希密码登录..但它不是我想要的D:

@ EDIT2

这就是登录事物的样子

  using (SqlConnection con = new    SqlConnection(ConfigurationManager.ConnectionStrings["Connect"].ToString()))
    {
        SqlCommand cmd = new SqlCommand();

        cmd.Connection = con;

        cmd.CommandText = @"SELECT * FROM users
                            WHERE login = @username
                            AND pass = @password";

        cmd.Parameters.AddWithValue("@username", TextBox_Login.Text);
        cmd.Parameters.AddWithValue("@password", TextBox_Password.Text);

        con.Open();
       }

2 个答案:

答案 0 :(得分:3)

哈希是一种方式。你不能将它转换回你开始的文本(当然一般来说)。

听起来就像你登录时,你错过了一个步骤来散列放入登录的文本并与存储的哈希进行比较。您提到使用登录表单中的哈希文本可以正常工作,但是如果您只是对登录密码文本进行哈希处理并将其用于身份验证/比较,那么您将获得预期的结果。

如果您散列TextBox_Password.Text然后将其作为参数传递而不是直接传递文本,那么您应该得到您所追求的结果。虽然你最初想做一些研究并在你的哈希上实施盐。

答案 1 :(得分:1)

哈希的想法是它非常容易加密并且很难解密。登录方式是通过相同的哈希算法运行尝试的密码,然后将该哈希值与用户存储的哈希值进行比较。您永远不能将存储的哈希读作纯文本。