Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Szyfrownik
- {
- static class Program
- {
- /// <summary>
- /// Główny punkt wejścia dla aplikacji.
- /// </summary>
- [STAThread]
- static void Main()
- {
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- logowanie l = new logowanie();
- l.ShowDialog();
- if (l.log == true)
- {
- Form1 f = new Form1();
- f.ShowDialog();
- }
- }
- static void Generuj_klucz(ref int[][] tablica)
- {
- int wylosowano = 0;
- Random losowa = new Random();
- for (int i = 0; i < 3; i++)
- {
- while (wylosowano < 116)
- {
- int Losowa = losowa.Next(100, 999);
- if ((Array.IndexOf(tablica[i], Losowa) == -1))
- {
- tablica[i][wylosowano] = Losowa;
- wylosowano++;
- }
- }
- wylosowano = 0;
- }
- int u = 0;
- // generowanie kluczy spec...
- wylosowano = 116;
- while (wylosowano < 119)
- {
- int Losowa = losowa.Next(100, 999);
- if ((Array.IndexOf(tablica[0], Losowa) == -1) && (Array.IndexOf(tablica[1], Losowa) == -1) && (Array.IndexOf(tablica[2], Losowa) == -1))
- {
- tablica[u][116] = Losowa;
- wylosowano++;
- u++;
- }
- }
- }
- public static string Szyfruj(string zdanieIN)
- {
- int[][] tablica = new int[][]
- {
- new int [117],
- new int [117],
- new int [117]
- };
- Generuj_klucz(ref tablica);
- char[] alfabet = ("`~1234567890-=!@#$%^&*( )_+qwertyuiopasdfghjklzxcvbnm" +
- "[]{}\\|;:'\",.<>/?QWERTYUIOPASDFGHJKLZXCVBNMąĄćĆĘꣳŃńÓ󌜯żŹź\r\n\t").ToCharArray();
- List<int> zdanie_sz = new List<int>();
- List<char> zdanie = new List<char>();
- foreach (char x in zdanieIN)
- {
- zdanie.Add(x);
- }
- while (zdanie.Count % 3 != 0)
- {
- zdanie.Add('`');
- }
- Random los = new Random();
- int Losowa=0;
- int i = 0, j=0, c=0;
- try
- {
- while (i < zdanie.Count)
- {
- Losowa = los.Next(0,3);
- zdanie_sz.Add(tablica[Losowa][116]);
- while(c<3)
- {
- if (zdanie[i] == alfabet[j])
- {
- i++;
- c++;
- zdanie_sz.Add(tablica[Losowa][j]);
- j = 0;
- }
- else j++;
- }
- c = 0;
- }
- }
- catch
- {
- MessageBox.Show("Błąd szyfrowania");
- }
- // łączenie intów w string...
- string separator = ",";
- string separator2 = "!";
- string zdanie2 = String.Join(separator, zdanie_sz);
- string klucz1 = String.Join(separator, tablica[0]);
- string klucz2 = String.Join(separator, tablica[1]);
- string klucz3 = String.Join(separator, tablica[2]);
- string joined = String.Join(separator2, klucz1, zdanie2, klucz2, klucz3);
- return joined;
- }
- public static string Deszyfruj(string joined)
- {
- int[][] tablica = new int[][]
- {
- new int [117],
- new int [117],
- new int [117]
- };
- // do deszyfrowania, rozdzielenie na tablice...
- List<string> numbers = new List<string>(joined.Split('!'));
- List<int> klucz1 = new List<int>(Array.ConvertAll(numbers[0].Split(','), int.Parse));
- List<int> zdanie_sz = new List<int>(Array.ConvertAll(numbers[1].Split(','), int.Parse));
- List<int> klucz2 = new List<int>(Array.ConvertAll(numbers[2].Split(','), int.Parse));
- List<int> klucz3 = new List<int>(Array.ConvertAll(numbers[3].Split(','), int.Parse));
- List<char> zdanie_n = new List<char>();
- tablica[0] = klucz1.ToArray();
- tablica[1] = klucz2.ToArray();
- tablica[2] = klucz3.ToArray();
- char[] alfabet = ("`~1234567890-=!@#$%^&*( )_+qwertyuiopasdfghjklzxcvbnm" +
- "[]{}\\|;:'\",.<>/?QWERTYUIOPASDFGHJKLZXCVBNMąĄćĆĘꣳŃńÓ󌜯żŹź\r\n\t").ToCharArray();
- int i = 0, j = 0, c = 0, g = 0;
- try
- {
- while (i < zdanie_sz.Count)
- {
- if (zdanie_sz[i] == tablica[j][116])
- {
- i++;
- while (g < 3)
- {
- if (zdanie_sz[i] == tablica[j][c])
- {
- i++;
- zdanie_n.Add(alfabet[c]);
- g++;
- c = 0;
- }
- else
- {
- c++;
- }
- }
- j = 0;
- g = 0;
- }
- else
- {
- j++;
- }
- }
- }
- catch
- {
- MessageBox.Show("Błąd deszyfrowania!");
- }
- string zdKoniec = new string(zdanie_n.ToArray());
- return zdKoniec;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement