Как я могу реализовать шифрование логина и регистрационного пароля в C# winforms?
Поэтому я недавно создал функцию входа и регистрации в своей форме Windows c#, я реализовал шифрование SHA1, но ut потерпел неудачу в части дешифрования. Поэтому я искал другой способ шифрования пароля, который, как я обнаружил, является AES, но у меня есть трудная часть в его реализации, так как я использую базу данных (sql server) для сохранения данных из регистрации. Я надеюсь, что кто - нибудь сможет провести меня через это.
Что я уже пробовал:
У меня уже есть функции регистрации и входа в систему, единственное, чего мне не хватает в приложении, - это шифрование и дешифрование пароля.
Авторизоваться:
private void btn_Login_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection("Data Source=DESKTOP-2SSIMR1;Initial Catalog=Juan Carlo SCM;Integrated Security=True"); SqlDataAdapter sda = new SqlDataAdapter("SELECT Username, Password FROM Employee_Table WHERE Username= '" + txtUsername.Text + "' AND Password = '" + txtPassword.Text + "' AND Status='Approved'", con); DataTable dt = new DataTable(); sda.Fill(dt); if (dt.Rows.Count == 1) { this.Hide(); Home hm = new Home(dt.Rows[0][0].ToString()); hm.Show(); } else { MessageBox.Show("Invalid username or Password", "Login Information", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
Регистрация:
private void Register_Btn_Click(object sender, EventArgs e) { if (IsValidated()) { try { if (con.State == ConnectionState.Closed) con.Open(); if (Register_Btn.Text == "Register") { SqlCommand cmd = new SqlCommand("RegisterAdd", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@mode", "Add"); cmd.Parameters.AddWithValue("@EmployeeID", 0); cmd.Parameters.AddWithValue("@LName", txtLastName.Text.Trim()); cmd.Parameters.AddWithValue("@FName", txtFirstName.Text.Trim()); cmd.Parameters.AddWithValue("@Contact", txtContact.Text.Trim()); cmd.Parameters.AddWithValue("@Email", txtEmail.Text.Trim()); cmd.Parameters.AddWithValue("@Username", txtUsername.Text.Trim()); cmd.Parameters.AddWithValue("@Password", txtPassword.Text.Trim()); cmd.Parameters.AddWithValue("@Position", txtPosition.Text.Trim()); cmd.Parameters.AddWithValue("@Status", txtStatus.Text.Trim()); if (txtPassword.Text != txtConfirmPassword.Text) { MessageBox.Show("Password not Match!"); txtPassword.Text = ""; txtConfirmPassword.Text = ""; } if (txtUsername.Text.Length < 3 || txtPassword.Text.Length < 4) { MessageBox.Show("Username or Pasword is too short"); } else { cmd.ExecuteNonQuery(); MessageBox.Show("Recorded Successfully."); con.Close(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error Message"); return; } finally { con.Close(); } } }