Example #1
0
        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;
        }
Example #2
0
        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");
            }
        }