public TestKlucza(SzukajKlucza szukaj) { File fl = new File(); kryptogram = fl.zwrocZawartoscB("zadanie2.txt"); this.szukaj = szukaj; alfabet = new Alfabet(); byte[] ff = System.Text.Encoding.ASCII.GetBytes(czescKlucza2); }
public void deszyfroj(String kryptogram, int ileKryptogramow) { List<List<int>> klucze = new List<List<int>>(); ileK = ileKryptogramow + 1; File FileReader = new File(); Alfabet alfabet = new Alfabet(); int[][] kryptogramy = new int[ileK][]; kryptogramy[0] = FileReader.zwrocZawartosc("zadanie1.txt"); int maxDlugosc = kryptogramy[0].Length; //przepisanie zawarości plików do tablicy int for (int i = 1; i < ileK; i++) { string temp = "" + i + ".txt"; kryptogramy[i] = FileReader.zwrocZawartosc(temp); if (maxDlugosc < kryptogramy[i].Length) maxDlugosc = kryptogramy[i].Length; } //przepisanie możliwych kluczy 8 bitowych int[] mozliweKlucze = alfabet.kombinacjeKlucza(); //szukanie kluczy do każdych 8 bitów for (int i = 0; i < maxDlugosc; i++) { List<int> poprawneKlucze= new List<int>(); foreach (int klucz in mozliweKlucze) { bool znaleziono = true; for (int j = 0; j < ileK; j++) { if (kryptogramy[j].Length <= i) continue; int znak = (kryptogramy[j][i] ^ klucz); if (!alfabet.lista_znakow.Contains(znak)) { znaleziono = false; break; } } if (znaleziono) { poprawneKlucze.Add(klucz); } } klucze.Add(poprawneKlucze); } for(int i=0;i<kryptogramy[0].Length;i++) { List<int> kluczeTest=klucze[i]; string wynik=" |"; foreach(int kl in kluczeTest) { char znak= (char)(kl^kryptogramy[0][i]); wynik+=znak+" | "; } Console.WriteLine(wynik); } }
public void deszyfroj(String kryptogram, int ileKryptogramow) { List <List <int> > klucze = new List <List <int> >(); ileK = ileKryptogramow + 1; File FileReader = new File(); Alfabet alfabet = new Alfabet(); int[][] kryptogramy = new int[ileK][]; kryptogramy[0] = FileReader.zwrocZawartosc("zadanie1.txt"); int maxDlugosc = kryptogramy[0].Length; //przepisanie zawarości plików do tablicy int for (int i = 1; i < ileK; i++) { string temp = "" + i + ".txt"; kryptogramy[i] = FileReader.zwrocZawartosc(temp); if (maxDlugosc < kryptogramy[i].Length) { maxDlugosc = kryptogramy[i].Length; } } //przepisanie możliwych kluczy 8 bitowych int[] mozliweKlucze = alfabet.kombinacjeKlucza(); //szukanie kluczy do każdych 8 bitów for (int i = 0; i < maxDlugosc; i++) { List <int> poprawneKlucze = new List <int>(); foreach (int klucz in mozliweKlucze) { bool znaleziono = true; for (int j = 0; j < ileK; j++) { if (kryptogramy[j].Length <= i) { continue; } int znak = (kryptogramy[j][i] ^ klucz); if (!alfabet.lista_znakow.Contains(znak)) { znaleziono = false; break; } } if (znaleziono) { poprawneKlucze.Add(klucz); } } klucze.Add(poprawneKlucze); } for (int i = 0; i < kryptogramy[0].Length; i++) { List <int> kluczeTest = klucze[i]; string wynik = " |"; foreach (int kl in kluczeTest) { char znak = (char)(kl ^ kryptogramy[0][i]); wynik += znak + " | "; } Console.WriteLine(wynik); } }