我已经用过了 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();
}
答案 0 :(得分:3)
听起来就像你登录时,你错过了一个步骤来散列放入登录的文本并与存储的哈希进行比较。您提到使用登录表单中的哈希文本可以正常工作,但是如果您只是对登录密码文本进行哈希处理并将其用于身份验证/比较,那么您将获得预期的结果。
如果您散列TextBox_Password.Text
然后将其作为参数传递而不是直接传递文本,那么您应该得到您所追求的结果。虽然你最初想做一些研究并在你的哈希上实施盐。
答案 1 :(得分:1)
哈希的想法是它非常容易加密并且很难解密。登录方式是通过相同的哈希算法运行尝试的密码,然后将该哈希值与用户存储的哈希值进行比较。您永远不能将存储的哈希读作纯文本。