/// <summary> /// Шифрование/дешифрование /// </summary> private void EncryptDecryptButton_Click(object sender, RoutedEventArgs e) { string AlgName = null; CopyEncText.Visibility = Visibility.Visible; CopyKeyText.Visibility = Visibility.Visible; // ################################# Шифрование ################################ if (EncryptionModeRadioButton.IsChecked == true) { if (CBCRadioButton.IsChecked == true) { AlgName = AlgNameCombobox.SelectionBoxItem.ToString() + "_CBC_PKCS7"; CopyIVText.Visibility = Visibility.Visible; } else { AlgName = AlgNameCombobox.SelectionBoxItem.ToString() + "_ECB_PKCS7"; } try { Cryptobox EncObject = new Cryptobox(); if (AlgName.Contains("RC4")) { AlgName = "RC4"; } OutputTextTextbox.Text = EncObject.EncryptMode(InputTextTextbox.Text, KeyInputTextTextbox.Text, AlgName, IVInputTextTextbox.Text, "256");//KeySizeCombobox.SelectionBoxItem.ToString()); AlgName = null; } catch (Exception ex) { string ErrorMessage = ex.Message; var DialogMessage = new MessageDialog("Ой"); if (ErrorMessage.Contains("Value does not fall")) { DialogMessage = new MessageDialog("Указанная длина ключа не подходит для алгоритма", "Ой"); } DialogMessage.ShowAsync(); } } // ################################# Дешифрование ################################ else { if (CBCRadioButton.IsChecked == true) { AlgName = AlgNameCombobox.SelectionBoxItem.ToString() + "_CBC_PKCS7"; CopyIVText.Visibility = Visibility.Visible; } else { AlgName = AlgNameCombobox.SelectionBoxItem.ToString() + "_ECB_PKCS7"; } try { Cryptobox DecObject = new Cryptobox(); if (AlgName.Contains("RC4")) { AlgName = "RC4"; } OutputTextTextbox.Text = DecObject.DecrypMode(InputTextTextbox.Text, KeyInputTextTextbox.Text, AlgName, IVInputTextTextbox.Text, "256");//;KeySizeCombobox.SelectionBoxItem.ToString()); AlgName = null; GC.Collect(); } catch (Exception exception) { string ErrorMessage = exception.Message; // ################################# Обработчики ошибок дешифрования ################################ var DialogMessage = new MessageDialog("Ой"); if (ErrorMessage.Contains("0x80070017")) { DialogMessage = new MessageDialog("Неправильный ключ", "Ой"); } else if (ErrorMessage.Contains("Плохие данные")) { DialogMessage = new MessageDialog("Вы пытаетесь расшифровать не зашифрованный текст", "Ой"); } else if (ErrorMessage.Contains("буфер не подходит")) { DialogMessage = new MessageDialog("Введите вектор инициализации IV", "Ой"); } else if (ErrorMessage.Contains("Value does not fall")) { DialogMessage = new MessageDialog("Указанная длина ключа не подходит для алгоритма", "Ой"); } else { DialogMessage = new MessageDialog(ErrorMessage, "Ой"); } DialogMessage.ShowAsync(); //////////////////////////////////////////////////////////////////// } } }