Шифрование и дешифрование пароля для входа - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь зайти на сайт и зарегистрироваться.Я использовал хэш для шифрования пароля, но я не могу войти в систему. Код страницы входа ниже

Это то, что я использовал для шифрования пароля

public string ToSHA2569(string value)
    {
    SHA256 sha256 = SHA256.Create();
    byte[] hashData = sha256.ComputeHash(Encoding.Default.GetBytes(value));
    StringBuilder returnValue = new StringBuilder();

    for (int i = 0; i < hashData.Length; i++)
    {
        returnValue.Append(hashData[i].ToString());

    }
    return returnValue.ToString();
}

Этомоя страница регистрации

protected void btnSubmit_Click(object sender, EventArgs e)
        {

        try
        {
            using (SqlConnection sqlcon = new SqlConnection(connectionString))
            {
                sqlcon.Open();
                SqlCommand cmd = new SqlCommand("UserRegister", sqlcon);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("@Name", txtName.Text.Trim());
                cmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim());
                cmd.Parameters.AddWithValue("@Password", ToSHA2569(txtPassword.Text.Trim()));
                cmd.Parameters.AddWithValue("Created", DateTime.Now);
                cmd.ExecuteNonQuery();
                lblMessage.Text = "You have registered succussfully";
            }
        }
        catch (Exception ex)
        {
            lblWrong.Text = "Something went wrong please try again later";
        }

            }


    }

Это моя страница входа, я думаю, что здесь что-то не так.Легче ли использовать ключ шифрования вместо хеша?

protected void btnSubmit_Click(object sender, EventArgs e)


        {

            try
            {


                using (SqlConnection sqlcon = new SqlConnection(connectionString))
                {
                    sqlcon.Open();
                    string checkPasswordQuery = "select Password from [dbo.Register] where Username ='" + ToSHA2569(txtEmail.Text) + "'";
                    SqlCommand passcom = new SqlCommand(checkPasswordQuery, sqlcon);

                    if (txtPassword.Text == ToSHA2569(txtPassword.Text))
                    {
                        Response.Redirect("default.aspx");

                    }
                    else
                    {
                        Response.Write("Password is not correct");
                    }
                }


            }
            catch
            {
                lblWrong.Text = "Something went wrong please try again later";
            }
        }

1 Ответ

0 голосов
/ 03 декабря 2018

string checkPasswordQuery = "выберите пароль из [dbo.Register], где имя пользователя = '" + ToSHA2569 (txtEmail.Text) + "'";

В чем причина шифрования электронной почты здесь?

Попробуйте перейти к следующему, где вы шифруете пароль, введенный с тем, что находится в базе данных.

if (checkPasswordQuery == ToSHA2569 (txtPassword.Text))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...