private void cmdEncode_Click(object sender, EventArgs e) { txtCypher.Text = enigma.Translate(txtText.Text); cmbLeftOffset.SelectedIndex = enigma.L.Offset - 1; cmbMiddleOffset.SelectedIndex = enigma.M.Offset - 1; cmbRightOffset.SelectedIndex = enigma.R.Offset - 1; }
private void cmdProfiling_Click(object sender, EventArgs e) { Random random = new Random(); for (int i = 0; i < 100000; i++) { int[] rotors = new int[3]; List <int> nums = new List <int>(5); for (int j = 1; j <= 5; j++) { nums.Add(j); } for (int j = 0; j < 3; j++) { int r = random.Next(5 - j); rotors[j] = nums[r]; nums.RemoveAt(r); } Enigma randEnigma = new Enigma(rotors[0], rotors[1], rotors[2]); randEnigma.L.RingSetting = random.Next(26) + 1; randEnigma.M.RingSetting = random.Next(26) + 1; randEnigma.R.RingSetting = random.Next(26) + 1; randEnigma.L.Offset = random.Next(26) + 1; randEnigma.M.Offset = random.Next(26) + 1; randEnigma.R.Offset = random.Next(26) + 1; nums = new List <int>(26); string plug = ""; int maxPairs = random.Next(10) + 1; for (int j = 0; j < 26; j++) { nums.Add(j); } for (int j = 0; j < maxPairs * 2; j++) { int l = random.Next(26 - j); plug += (char)('A' + nums[l]); nums.RemoveAt(l); } randEnigma.Plug = new Plugboard(plug); randEnigma.Translate("RANDOMMESSAGE"); } }