在我的项目中,登录后的用户必须在登录时更改默认密码,并且该密码将存储在数据库中我想加密用户在更改密码页面中输入的密码并将其存储在数据库中重新登录该用户我想加密在登录页面中输入的密码并检查数据库中保存的密码或获取加密密码以进行解密并使用输入的密码检查解密密码我该怎么做我的更改密码代码是,
SqlConnection con = new SqlConnection(@"Data Source=ESLHPC17\SQL2008;Initial Catalog=Eval;User ID=;Password=");
try
{
string Qry = "Select Password from passtable where Password='" + CurrentPassword.Text + "'";
string qry = "Select Password from passtable";
SqlCommand cmd = new SqlCommand(Qry, con);
SqlCommand cmd1 = new SqlCommand(qry, con);
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlDataAdapter daa = new SqlDataAdapter(cmd1);
DataTable dt = new DataTable();
DataTable dtt = new DataTable();
da.Fill(dt);
daa.Fill(dtt);
if (dtt.Rows[0]["Password"].ToString() == CurrentPassword.Text)
{
string strqry = "Update Passtable Set Password='" + EncryptString(NewPassword.Text) + "'";
SqlCommand comd = new SqlCommand(strqry, con);
comd.ExecuteNonQuery();
Label1.Visible = true;
Button1.Visible = true;
ChangeButton.Enabled = false;
}
else
{
lblMessage.Visible = true;
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Current Password and Entered Password did not Match !!!";
}
}
finally
{
con.Close();
con.Dispose();
}
带有 SQL INJECTION 检测的已编辑代码
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["EvalCon"].ConnectionString))
{
try
{
string Qry = "Select Password from passtable where Password='" + CurrentPassword.Text + "'";
string qry = "Select Password from passtable";
if (CurrentPassword.Text != "Select" && CurrentPassword.Text != "Create Table" && CurrentPassword.Text != "Update" && CurrentPassword.Text != "Delete" && CurrentPassword.Text != "Truncate" && CurrentPassword.Text != "Drop Table" && CurrentPassword.Text != "Insert" && CurrentPassword.Text != "@")
{
if (NewPassword.Text != "Select" && NewPassword.Text != "Create Table" && NewPassword.Text != "Update" && NewPassword.Text != "Delete" && NewPassword.Text != "Truncate" && NewPassword.Text != "Drop Table" && NewPassword.Text != "Insert" && NewPassword.Text != "@")
{
using (SqlCommand cmd = new SqlCommand(Qry, con))
{
using (SqlCommand cmd1 = new SqlCommand(qry, con))
{
con.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
SqlDataAdapter daa = new SqlDataAdapter(cmd1);
DataTable dt = new DataTable();
DataTable dtt = new DataTable();
da.Fill(dt);
daa.Fill(dtt);
if (dtt.Rows[0]["Password"].ToString() == CurrentPassword.Text)
{
string strqry = "Update Passtable Set Password='" + NewPassword.Text + "'";
SqlCommand comd = new SqlCommand(strqry, con);
comd.ExecuteScalar()
Label1.Visible = true;
Button1.Visible = true;
ChangeButton.Enabled = false;
}
else
{
lblMessage.Visible = true;
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Current Password and Entered Password did not Match !!!";
}
}
}
}
else
{
lblMessage.Visible = true;
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "SQL INJECTION Breach you Can't Continue!!!";
CurrentPassword.Enabled = false;
NewPassword.Enabled = false;
ConfirmNewPassword.Enabled = false;
}
}
else
{
lblMessage.Visible = true;
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "SQL INJECTION Breach you Can't Continue!!!";
CurrentPassword.Enabled = false;
NewPassword.Enabled = false;
ConfirmNewPassword.Enabled = false;
}
}
finally
{
con.Close();
con.Dispose();
}
}