예제 #1
0
        public string DecryptPassword(string encryptedPsw)
        {
            //DecryptData throws if the wrong password is used.
            var wrapper = new Encrypter(EncryptKey);

            try
            {
                var plainPsw = wrapper.DecryptData(encryptedPsw);
                return(plainPsw);
            }
            catch (Exception ex)
            {
                throw new Exception($"Error during the decryption: {ex.Message}");
            }
        }
예제 #2
0
        private void SaveSettingsButton_Click(object sender, EventArgs e)
        {
            if (!validateUsername(SettingsUsernameInput.Text))
            {
                SettingsFeedback.Text = "Invalid username, please change the name before saving!";
                return;
            }

            if (File.Exists(@"" + filePath + SettingsUsernameInput.Text.ToLower() + ".txt") && SettingsUsernameInput.Text.ToLower() != username)
            {
                SettingsFeedback.Text = "This username is already in use!";
                return;
            }

            if ((SettingsNewPasswordInput.Text != "" && SettingsNewPasswordInput.ForeColor == Color.White) || (SettingsConfirmPasswordInput.Text != "" && SettingsConfirmPasswordInput.ForeColor == Color.White))
            {
                // Change username and password
                if (Encrypter.SHA256(SettingsCurrentPasswordInput.Text) != password)
                {
                    SettingsFeedback.Text = "Access denied!";
                    return;
                }

                if (!validatePassword(SettingsNewPasswordInput.Text, SettingsConfirmPasswordInput.Text))
                {
                    SettingsFeedback.Text = "Invalid password, please make sure password and confirm password match and they are both atleast 8 characters long and contains both capital and lower letter!";
                    return;
                }

                if (SettingsUsernameInput.Text.ToLower() != username)
                {
                    if (File.Exists(@"" + filePath + username + ".txt"))
                    {
                        deleteFile(username);
                    }

                    username = SettingsUsernameInput.Text.ToLower();
                }

                if (accountData.Any())
                {
                    List <KeyValuePair <string, string[]> > tempData = Encrypter.DecryptData(accountData, encryptionKey);
                    encryptionKey = SettingsNewPasswordInput.Text;
                    password      = Encrypter.SHA256(SettingsNewPasswordInput.Text);
                    accountData   = Encrypter.EncryptData(tempData, encryptionKey);
                }
                else
                {
                    encryptionKey = SettingsNewPasswordInput.Text;
                    password      = Encrypter.SHA256(SettingsNewPasswordInput.Text);
                }

                SaveData();
            }
            else
            {
                // Change only username
                if (SettingsUsernameInput.Text.ToLower() != username)
                {
                    if (File.Exists(@"" + filePath + username + ".txt"))
                    {
                        deleteFile(username);
                    }

                    username = SettingsUsernameInput.Text.ToLower();
                    SaveData();
                }
            }

            SettingsPanel.Visible    = false;
            AddAccountButton.Enabled = true;
            SettingsButton.Enabled   = true;
            LogoutButton.Enabled     = true;
            AccountsPanel.Visible    = true;
        }