private void btnRegister_Click(object sender, RoutedEventArgs e) { // rekisteröintinappia painettaessa, asetetaan muuttujiin käyttäjänimi ja salasanat string username = txbUsername.Text; string pwd1 = pwbPass1.Password; string pwd2 = pwbPass2.Password; // tarkistetaan onko salasanakentässä 5 merkkiä tai alle if (pwd1.Length <= 5) { MessageBox.Show($"The password needs to be at least 6 characters long."); pwbPass1.Password = ""; pwbPass2.Password = ""; return; } // tarkistetaan onko käyttäjänimi vapaana bool res = DatabaseAccess.CheckIfUserExistInSQLite(username); if (res == true) { MessageBox.Show($"Username '{username}' is already in use.", "Information", MessageBoxButton.OK); txbUsername.Text = ""; pwbPass1.Password = ""; pwbPass2.Password = ""; return; } // tarkistetaan täsmääkö salasanat if (pwd1 != pwd2) { MessageBox.Show("Password doesn't match!", "Error", MessageBoxButton.OK); pwbPass1.Password = ""; pwbPass2.Password = ""; return; } // luodaan käyttäjälle salt string salt = Security.ComputeSaltString(); // saltataan ja hashataan salasana string pwdHashSalted = Security.ComputeSha256Hash(pwd1 + salt); // tallennetaan tiedot tietokantaan bool res2 = DatabaseAccess.SaveUserToSQL(username, salt, pwdHashSalted); try { // Näytetään joko onnistumisboksi tai epäonnistumisboksi, kun tallennetaan if (res2 == true) { MessageBox.Show($"User '{username}' saved succesfully.", "Information", MessageBoxButton.OK); Login loginWindow = new Login(); loginWindow.Show(); this.Close(); } else { MessageBox.Show($"User '{username}' can not be saved.", "Error", MessageBoxButton.OK); txbUsername.Text = ""; pwbPass1.Password = ""; pwbPass2.Password = ""; } } catch (InvalidOperationException ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButton.OK); } }