30/09/2018, 18:49
hỏi về password-username
Mọi người cho mình hỏi tí, mình mới viết chương trình password , để so sánh 2 chuỗi chỉ dùng mỗi hàm string.Compare
string connetionString = null;
SqlConnection sqlCnn;
SqlCommand sqlCmd;
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable ds = new DataTable();
int i = 0;
string sql = null;
connetionString = " Data Source=BAOPC;Initial Catalog=username-password;Integrated Security=True";
sql = "Select * from passwordandusername ";
sqlCnn = new SqlConnection(connetionString);
try
{
sqlCnn.Open();
sqlCmd = new SqlCommand(sql, sqlCnn);
adapter.SelectCommand = sqlCmd;
adapter.Fill(ds);
for (i = 0; i <= ds.Rows.Count - 1; i++)
{
int result = string.Compare(txtpassword.Text, ds.Rows[i].ItemArray[2].ToString());
int result2 = string.Compare(txtusername.Text, ds.Rows[i].ItemArray[1].ToString());
if (result == 0&& result2==0)
MessageBox.Show("0k");
}
adapter.Dispose();
sqlCmd.Dispose();
sqlCnn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Can not open connection ! ");
}
Mình thấy trên google có nhiều code cho password nhưng mình toàn thấy giải khác. Không biết code mình có nhược điểm gì không ạ. Mình cảm ơn nhiều
Bài liên quan
Quy tắc cơ bản 1: không bao giờ lưu password trong database. Giải phải đơn giản nhất là hash password trước khi lưu, và so sánh 2 chuỗi hash.
ý mình là xem code khác thì họ cũng lưu password trong databse nhưng cách code của họ mình thấy hơi phức tạp. Họ làm thể chắc phải có lý do.Mà mình chưa biết vì sao. sao không dùng hàm string.compare cho đơn giản ? Bạn có thể giải thích rõ hơn được không? Mình mới học nên chưa rõ
do độ bảo mật đó bạn, phải mã hóa nó trước khi lưu vào csdl.
Còn code thì mình k pít hehe
Lưu password vào database cũng được. Nhưng thử tưởng tượng hacker chiếm được database thì chỉ cần đọc password là xong, khỏi cần giải mã gì hết.