private void encrypt_Click(object sender, EventArgs e) //клик по кнопке "зашифр" { //перевод всего текста в нижний регистр, чтоб не вылетало тк нету нужных симв в алф for (int i = 0; i < input_text.Lines.Length; i++) { input_text.Lines[i] = input_text.Lines[i].ToLower(); //все в нижний регистр, чтоб не вылетало } enc ENC = new enc(ab.Text.ToLower(), key.Text.ToLower(), input_text.Lines); if (input_text.Text != "" && ab.Text != "" && key.Text != "") { switch (method.SelectedIndex) { case 0: encrypted_text.Lines = ENC.replace(); break; case 1: encrypted_text.Lines = ENC.block_enc(); break; case 2: encrypted_text.Lines = ENC.hard_block_enc(); break; case 3: encrypted_text.Lines = ENC.cesar(); break; case 4: for (var i = 0; i < input_text.Text.Length; i++) { if ((input_text.Text[i] > '1') || (input_text.Text[i] < '0')) { MessageBox.Show("Некорректный исходный текст", "Ошибка"); return; } } for (var i = 0; i < key.Text.Length; i++) { if ((Convert.ToInt32(key.Text[i]) > '1') || (Convert.ToInt32(key.Text[i]) < '0')) { MessageBox.Show("Некорректный ключ", "Ошибка"); return; } } encrypted_text.Text = ENC.XOR(input_text.Text, key.Text); break; } } }
/* ---------------------------------------------------------------------- */ private enc encoder_init(int k, int poly1, int poly2) { enc e = new enc(); int i, size; size = 1 << k; /* size of the output table */ e.output = new int[size]; for (i = 0; i < size; i++) e.output[i] = parity(poly1 & i) | (parity(poly2 & i) << 1); e.shreg = 0; e.shregmask = size - 1; return e; }