private async void generate_Click(object sender, RoutedEventArgs e) { long textLen = 0; if (checkLsfr(poly1.Text, init1.Text) == true && checkLsfr(poly2.Text, init2.Text) == true && checkLsfr(poly3.Text, init3.Text) == true && checkNumer(len.Text) && long.TryParse(len.Text, out textLen)) { lfsr _1 = new lfsr(poly1.Text, init1.Text); lfsr _2 = new lfsr(poly2.Text, init2.Text); lfsr _3 = new lfsr(poly3.Text, init3.Text); geffe = new geffe(_1, _2, _3); string test = await Task.Run(() => gen(geffe, textLen)); result.Text = test; int tryParse = -1; bool res = int.TryParse(number.Text, out tryParse); if (!res || (tryParse < 1 && tryParse > 2900)) { string dirName = DateTime.Now.ToString("yyyy_dd_M HH_mm_ss"); System.IO.Directory.CreateDirectory(@".\Data\"); System.IO.Directory.CreateDirectory(@".\Data\user\" + dirName); using (System.IO.StreamWriter fileResult = new System.IO.StreamWriter(@".\Data\user\" + dirName + @"\lsfr1.txt")) { fileResult.WriteLine(poly1.Text); fileResult.WriteLine(init1.Text); } using (System.IO.StreamWriter fileResult = new System.IO.StreamWriter(@".\Data\user\" + dirName + @"\lsfr2.txt")) { fileResult.WriteLine(poly2.Text); fileResult.WriteLine(init3.Text); } using (System.IO.StreamWriter fileResult = new System.IO.StreamWriter(@".\Data\user\" + dirName + @"\lsfr3.txt")) { fileResult.WriteLine(poly3.Text); fileResult.WriteLine(init3.Text); } using (System.IO.StreamWriter fileResult = new System.IO.StreamWriter(@".\Data\user\" + dirName + @"\result.txt")) { fileResult.Write(result.Text); } } else { using (System.IO.StreamWriter fileResult = new System.IO.StreamWriter(@".\Data\results\" + number.Text + "_" + len.Text + @".txt")) { fileResult.Write(result.Text); } } } else { var resut = MessageBox.Show("Coś poszło nie tak, sprawdź wszystkie pola jeszcze raz.", "Błąd"); } }
private string gen(geffe g, long len) { //string to_return = ""; //for (long i = 0; i < len; ++i) // to_return += geffe.next().ToString(); //return to_return; var watch = System.Diagnostics.Stopwatch.StartNew(); StringBuilder sb = new StringBuilder(); for (long i = 0; i < len; ++i) { sb.Append(geffe.next().ToString()); } watch.Stop(); System.Console.WriteLine(watch.Elapsed); return(sb.ToString()); }
private async void decode(object sender, RoutedEventArgs e) { if (checkLsfr(poly1.Text, init1.Text) == true && checkLsfr(poly2.Text, init2.Text) == true && checkLsfr(poly3.Text, init3.Text) == true && checkInit(result.Text)) { lfsr _1 = new lfsr(poly1.Text, init1.Text); lfsr _2 = new lfsr(poly2.Text, init2.Text); lfsr _3 = new lfsr(poly3.Text, init3.Text); geffe = new geffe(_1, _2, _3); string s = result.Text; string test = await Task.Run(() => de(geffe, s)); result.Text = test; } else { var resut = MessageBox.Show("Coś poszło nie tak, sprawdź wszystkie pola jeszcze raz.", "Błąd"); } }
private async void generate_Click(object sender, RoutedEventArgs e) { if (checkLsfr(poly1.Text, init1.Text) == true && checkLsfr(poly2.Text, init2.Text) == true && checkLsfr(poly3.Text, init3.Text) == true && result.Text.Length < 1000000 && checkText(result.Text)) { lfsr _1 = new lfsr(poly1.Text, init1.Text); lfsr _2 = new lfsr(poly2.Text, init2.Text); lfsr _3 = new lfsr(poly3.Text, init3.Text); geffe = new geffe(_1, _2, _3); string s = result.Text; string test = await Task.Run(() => gen(geffe, s)); result.Text = test; MessageBox.Show("Wygenerowano klucz o długości: " + test.Length.ToString(), "Długość klucza"); } else { var resut = MessageBox.Show("Coś poszło nie tak, sprawdź wszystkie pola jeszcze raz.", "Błąd"); } }
private string de(geffe g, string text) { short value_1 = 0; short value_2 = 0; List <int> encrypt = new List <int>(); for (int i = 0; i < text.Length; ++i) { value_1 = g.next() == '0' ? (short)0 : (short)1; if (text[i] == '0') { value_2 = 0; } else { value_2 = 1; } encrypt.Add(((value_1 + value_2) % 2)); } return(BinaryToString(string.Join("", encrypt.ToArray()))); }
private string gen(geffe g, string text) { short value_1 = 0; short value_2 = 0; string binaryData = StringToBinary(text); List <int> encypt = new List <int>(); for (int i = 0; i < binaryData.Length; ++i) { value_1 = g.next() == '0' ? (short)0 : (short)1; if (binaryData[i] == '0') { value_2 = 0; } else { value_2 = 1; } encypt.Add(((value_1 + value_2) % 2)); } return(string.Join("", encypt.ToArray())); }