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

Huy Le viết 20:59 ngày 30/09/2018

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.

Chiến Binh Thép viết 20:51 ngày 30/09/2018

ý 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õ

Thu Thuỷ viết 21:01 ngày 30/09/2018

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

Thư Đoàn viết 21:05 ngày 30/09/2018

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.

Bài liên quan
0