private void ClearTextBoxes() { NewPersonName.Clear(); NewCompanyName.Clear(); NewCatalogName.Clear(); KeyBox.Clear(); SearchResult.Text = ""; }
/// <summary> /// функция по очистке всех трех боксов: исходный текст, зашифрованный текст и бокс для ввода ключа /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Clear_Click(object sender, EventArgs e) { richTextBox1.Clear(); richTextBox2.Clear(); KeyBox.Clear(); }
public void CaesarDecryption() { richTextBox2.Text = ""; string input = ""; int letterNumber; input = richTextBox1.Text; string tempKey = KeyBox.Text; int key = Int32.Parse(tempKey); if (richTextBox1.Text != "" && KeyBox.Text != "") { Regex rgx = new Regex(@"(^([а-яА-Я0-9\p{P}\s])+$)"); Regex keyRgx = new Regex(@"(?<=^|\s)([1-9]|([1-6]\d)|(7[0-5]))(?=\s|$)"); if (!rgx.IsMatch(richTextBox1.Text) || !keyRgx.IsMatch(KeyBox.Text)) { MessageBox.Show("Были введены неверные символы! Введите другой текст.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning); richTextBox1.Clear(); KeyBox.Clear(); } else { string[] inputArr = new string[input.Length]; int[] inputIndex = new int[input.Length]; string[] decrypted = new string[input.Length]; //создание массива для записи результатов дешифрования for (int i = 0; i < input.Length; i++) { inputArr[i] = Convert.ToString(input[i]); } for (int i = 0; i < input.Length; i++) { for (int j = 0; j < alphabet.Length; j++) { if (inputArr[i] == alphabet[j]) { inputIndex[i] = j; } } } for (int i = 0; i < inputArr.Length; i++) { if (IsSign(inputArr[i])) { decrypted[i] = inputArr[i]; continue; } //вычисляем номер символа, получившегося в результате с помощью формулы: //(номер символа зашифр. текста - ключ + длина алфавита) / длина алфавита letterNumber = (inputIndex[i] - key + alphabet.Length) % alphabet.Length; decrypted[i] = alphabet[letterNumber]; letterNumber = 0; } for (int i = 0; i < inputIndex.Length; i++) { richTextBox2.Text += decrypted[i]; } } } else { MessageBox.Show("Не все обязательные поля заполнены!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// функция, отвечающая за процесс шифрования /// </summary> public void CaesarEncryption() { richTextBox2.Text = ""; string input = ""; int letterNumber; input = richTextBox1.Text; string tempKey = KeyBox.Text; int key = Int32.Parse(tempKey); //если оба основных бокса не пустые if (richTextBox1.Text != "" && KeyBox.Text != "") { //создание рег. выр. для поля "исходный текст" Regex rgx = new Regex(@"(^([а-яА-Я0-9\p{P}\s])+$)"); //создание рег. выр для поля ввода ключа Regex keyRgx = new Regex(@"(?<=^|\s)([1-9]|([1-6]\d)|(7[0-5]))(?=\s|$)"); //если хотя бы в одном из полей введены неверные символы if (!rgx.IsMatch(richTextBox1.Text) || !keyRgx.IsMatch(KeyBox.Text)) { MessageBox.Show("Были введены неверные символы! Введите другой текст.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning); richTextBox1.Clear(); KeyBox.Clear(); } else { //создание массива для символов вводимого текста string[] inputArr = new string[input.Length]; //создание массива для номеров символов исходного текста int[] inputIndex = new int[input.Length]; //создание массива для записи результатов шифрования string[] encrypted = new string[input.Length]; //разбиваем исходный текст на символы типа string for (int i = 0; i < input.Length; i++) { inputArr[i] = Convert.ToString(input[i]); } for (int i = 0; i < input.Length; i++) { for (int j = 0; j < alphabet.Length; j++) { //если символ исходного текста есть в алфавите if (inputArr[i] == alphabet[j]) { //запоминается номер этого символа в алфавите inputIndex[i] = j; } } } //проверка, является ли знаком элемент, если является, переходим на след. итерацию for (int i = 0; i < inputArr.Length; i++) { if (IsSign(inputArr[i])) { encrypted[i] = inputArr[i]; continue; } //вычисляем номер символа, получившегося в результате с помощью формулы: //(номер символа исх. текста + номер символа ключа) / длину алфавита letterNumber = (inputIndex[i] + key) % alphabet.Length; //запоминаем этот символ encrypted[i] = alphabet[letterNumber]; //обнуляем переменную, куда записывали номер элемента letterNumber = 0; } //в текстбокс записываем результат шифрования for (int i = 0; i < inputIndex.Length; i++) { richTextBox2.Text += encrypted[i]; } } } else { MessageBox.Show("Не все обязательные поля заполнены!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void VigenereDecryption() { richTextBox2.Text = ""; string input = "", key = "", keyTemp = ""; int mod = 0, letterNumber; input = richTextBox1.Text; keyTemp = KeyBox.Text; if (richTextBox1.Text != "" && KeyBox.Text != "") { Regex rgx = new Regex(@"(^([а-яА-Я0-9\p{P}\s])+$)"); Regex keyRgx = new Regex("[а-я]"); if (!rgx.IsMatch(richTextBox1.Text) || !keyRgx.IsMatch(KeyBox.Text)) { MessageBox.Show("Были введены неверные символы! Введите другой текст.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning); richTextBox1.Clear(); KeyBox.Clear(); } else { mod = input.Length % keyTemp.Length; for (int i = 0; i < (input.Length - mod) / keyTemp.Length; i++) { key += keyTemp; } for (int i = 0; i < mod; i++) { key += keyTemp[i]; } string[] inputArr = new string[input.Length]; int[] inputIndex = new int[input.Length]; string[] keyArr = new string[input.Length]; int[] keyIndex = new int[input.Length]; string[] decrypted = new string[input.Length]; //создание массива для записи результатов дешифрования for (int i = 0; i < input.Length; i++) { inputArr[i] = Convert.ToString(input[i]); } for (int i = 0; i < key.Length; i++) { keyArr[i] = Convert.ToString(key[i]); } for (int i = 0; i < input.Length; i++) { for (int j = 0; j < alphabet.Length; j++) { if (inputArr[i] == alphabet[j]) { inputIndex[i] = j; } if (keyArr[i] == alphabet[j]) { keyIndex[i] = j; } } } for (int i = 0; i < inputArr.Length; i++) { if (IsSign(inputArr[i])) { decrypted[i] = inputArr[i]; continue; } //вычисляем номер символа, получившегося в результате с помощью формулы: //(номер символа исх. текста - номер символа ключа + длина алфавита) / длину алфавита letterNumber = (inputIndex[i] - keyIndex[i] + alphabet.Length) % alphabet.Length; decrypted[i] = alphabet[letterNumber]; letterNumber = 0; } for (int i = 0; i < inputIndex.Length; i++) { richTextBox2.Text += decrypted[i]; } } } else { MessageBox.Show("Не все обязательные поля заполнены!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// функция, отвечающая за процесс шифрования /// </summary> public void VigenereEncryption() { richTextBox2.Text = ""; string input = "", key = "", keyTemp = ""; int mod = 0, letterNumber; input = richTextBox1.Text; keyTemp = KeyBox.Text; //если оба основных бокса не пустые if (richTextBox1.Text != "" && KeyBox.Text != "") { //создание рег. выр. для поля "исходный текст" Regex rgx = new Regex(@"(^([а-яА-Я0-9\p{P}\s])+$)"); //создание рег. выр для поля ввода ключа Regex keyRgx = new Regex("[а-я]"); //если хотя бы в одном из полей введены неверные символы if (!rgx.IsMatch(richTextBox1.Text) || !keyRgx.IsMatch(KeyBox.Text)) { MessageBox.Show("Были введены неверные символы! Введите другой текст.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Warning); richTextBox1.Clear(); KeyBox.Clear(); } else { //остаток от деления длины исходного текста на длину ключа mod = input.Length % keyTemp.Length; //формируем ключ таким образом, чтобы его длина равнялась длине исходного текста for (int i = 0; i < (input.Length - mod) / keyTemp.Length; i++) { key += keyTemp; } for (int i = 0; i < mod; i++) { key += keyTemp[i]; } //создание массива для символов вводимого текста string[] inputArr = new string[input.Length]; //создание массива для номеров символов исходного текста int[] inputIndex = new int[input.Length]; //создание массива для символов ключевого слова string[] keyArr = new string[input.Length]; //создание массива для номеров символов ключевого слова int[] keyIndex = new int[input.Length]; //создание массива для записи результатов шифрования string[] encrypted = new string[input.Length]; //разбиваем исходный текст на символы типа string for (int i = 0; i < input.Length; i++) { inputArr[i] = Convert.ToString(input[i]); } //разбиваем ключ на символы типа string for (int i = 0; i < key.Length; i++) { keyArr[i] = Convert.ToString(key[i]); } for (int i = 0; i < input.Length; i++) { for (int j = 0; j < alphabet.Length; j++) { //если символ исходного текста есть в алфавите if (inputArr[i] == alphabet[j]) { //запоминается номер этого символа в алфавите inputIndex[i] = j; } //если символ ключа находится в алфавите if (keyArr[i] == alphabet[j]) { //запоминается номер этого символа в алфавите keyIndex[i] = j; } } } //проверка, является ли знаком элемент, если является, переходим на след. итерацию for (int i = 0; i < inputArr.Length; i++) { if (IsSign(inputArr[i])) { encrypted[i] = inputArr[i]; continue; } //вычисляем номер символа, получившегося в результате с помощью формулы: //(номер символа исх. текста + номер символа ключа) / длину алфавита letterNumber = (inputIndex[i] + keyIndex[i]) % alphabet.Length; //запоминаем этот символ encrypted[i] = alphabet[letterNumber]; //обнуляем переменную, куда записывали номер элемента letterNumber = 0; } //в текстбокс записываем результат шифрования for (int i = 0; i < inputIndex.Length; i++) { richTextBox2.Text += encrypted[i]; } } } else { MessageBox.Show("Не все обязательные поля заполнены!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }