Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- protected void szyfruj3_Click(object sender, EventArgs e)
- {
- //tabela szyfrująca
- Regex validateNumberRegex = new Regex("^[a-z A-Z]+$");
- if (!validateNumberRegex.IsMatch(tb_klucz3.Text))
- {
- tb_wynik3.Text = "Podaj poprawny klucz, tylko litery alfabetu łacińskiego";
- }
- else
- {
- string wiadomosc = tb_tekst3.Text;
- string klucz = tb_klucz3.Text;
- string wynik3 = "";
- int col = klucz.Length;
- int dl_wiadomosc = wiadomosc.Length;
- int row = wiadomosc.Length / col;
- if (wiadomosc.Length % col != 0)
- row += 1;
- var keyMap = new Dictionary<int, int>();
- //permutacja
- for (int i = 0; i < col; i++)
- {
- keyMap.Add(i, klucz[i]);
- }
- char[,] tab = new char[row, col];
- for (int i = 0, k = 0; i < row; i++)
- {
- for (int j = 0; j < col;)
- {
- if (k >= wiadomosc.Length)
- {
- tab[i, j] = ' ';
- j++;
- }
- else if (wiadomosc[k] != ' ')
- {
- tab[i, j] = wiadomosc[k];
- j++;
- }
- k++;
- }
- }
- foreach (KeyValuePair<int, int> km in keyMap.OrderBy(key => key.Value))
- {
- int j = km.Key;
- for (int i = 0; i < row; i++)
- {
- wynik3 += tab[i, j];
- }
- }
- tb_wynik3.Text = wynik3.Replace(" ", ""); //usunięcie spacji między słowami
- }
- }
- protected void deszyfruj3_Click(object sender, EventArgs e)
- {
- //tabela szyfrująca
- Regex validateNumberRegex = new Regex("^[a-z A-Z]+$");
- if (!validateNumberRegex.IsMatch(tb_klucz3.Text))
- {
- tb_wynik3.Text = "Podaj poprawny klucz, tylko litery alfabetu łacińskiego";
- }
- else
- {
- string zaszyfrowanaWiadomosc = tb_tekst3.Text;
- string klucz = tb_klucz3.Text;
- string wynik3 = "";
- int col = klucz.Length;
- int dl_wiadomosc = zaszyfrowanaWiadomosc.Length;
- int row = zaszyfrowanaWiadomosc.Length / col;
- if (zaszyfrowanaWiadomosc.Length % col != 0)
- row += 1;
- var keyMap = new Dictionary<int, int>();
- //permutacja
- for (int i = 0; i < col; i++)
- {
- keyMap.Add(i, klucz[i]);
- }
- //deszyfrowanie
- char[,] tab = new char[row, col];
- int currentIndex = 0;
- foreach (KeyValuePair<int, int> km in keyMap.OrderBy(key => key.Value))
- {
- int j = km.Key;
- for (int i = 0; i < row; i++)
- {
- if (currentIndex >= zaszyfrowanaWiadomosc.Length)
- {
- tab[i, j] = ' ';
- }
- else
- {
- tab[i, j] = zaszyfrowanaWiadomosc[currentIndex];
- }
- currentIndex++;
- }
- }
- //składanie oryginalnej wiadomości
- for (int i = 0; i < row; i++)
- {
- for (int j = 0; j < col; j++)
- {
- if (tab[i, j] != ' ')
- {
- wynik3 += tab[i, j];
- }
- }
- }
- tb_wynik3.Text = wynik3;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment