private void ClearTextBoxes()
 {
     NewPersonName.Clear();
     NewCompanyName.Clear();
     NewCatalogName.Clear();
     KeyBox.Clear();
     SearchResult.Text = "";
 }
Esempio n. 2
0
 /// <summary>
 /// функция по очистке всех трех боксов: исходный текст, зашифрованный текст и бокс для ввода ключа
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Clear_Click(object sender, EventArgs e)
 {
     richTextBox1.Clear();
     richTextBox2.Clear();
     KeyBox.Clear();
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        /// <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);
            }
        }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        /// <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);
            }
        }