Пример #1
2
        private void button1_Click(object sender, EventArgs e)
        {
            try {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    List<byte> bytes = new List<byte>();
                    BinaryReader br = new BinaryReader(File.Open(openFileDialog1.FileName, FileMode.Open));
                    while (!(br.BaseStream.Position >= br.BaseStream.Length))
                    {
                        bytes.Add(br.ReadByte());
                    }
                    br.Close();

                    //BitArray plain = new BitArray(bytes.ToArray());
                    StringBuilder sb = new StringBuilder();

                    foreach (byte b in bytes)
                    {
                        sb.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
                    }
                    richTextBox1.Text = sb.ToString();
                    sb.Clear();

                    LFSR lfsr = new LFSR(new List<int>() { 28, 3 },
                        Services.StringToBooleanArray(textBox1.Text).ToList(), bytes.ToArray());

                    byte[] cipher = lfsr.GetNewBitArray();

                    foreach (byte b in cipher)
                    {
                        string curByte = Convert.ToString(b, 2).PadLeft(8, '0');
                        for (int i = 0; i < 8; i++)
                        {
                            sb.Append(curByte[i]);
                        }
                        sb.Append(" ");
                    }

                    richTextBox3.Text = sb.ToString();
                    sb.Clear();

                    richTextBox2.Text = Services.BoolArrayToString(lfsr.Key);

                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        BinaryWriter bw = new BinaryWriter(File.Create(saveFileDialog1.FileName));
                        bw.Write(Services.BitArrayToByteArray(new BitArray(cipher)));
                        bw.Close();
                    }
                }
            }
            catch
            {

            }
            finally
            {

            }
        }
Пример #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    List<byte> bytes = new List<byte>();
                    BinaryReader br = new BinaryReader(File.Open(openFileDialog1.FileName, FileMode.Open));
                    while (!(br.BaseStream.Position >= br.BaseStream.Length))
                    {
                        bytes.Add(br.ReadByte());
                    }
                    br.Close();

                    richTextBox1.Text = Services.ByteArrayToString(bytes.ToArray());

                    LFSR lfsr1 = new LFSR(new List<int>() { 28, 3},
                        Services.StringToBooleanArray(textBox2.Text).ToList(), bytes.ToArray());
                    List<bool> key1 = lfsr1.Key;

                    LFSR lfsr2 = new LFSR(new List<int>() { 36, 11},
                        Services.StringToBooleanArray(textBox3.Text).ToList(), bytes.ToArray());
                    List<bool> key2 = lfsr2.Key;

                    LFSR lfsr3 = new LFSR(new List<int>() { 26, 8, 7, 1},
                        Services.StringToBooleanArray(textBox4.Text).ToList(), bytes.ToArray());
                    List<bool> key3 = lfsr3.Key;

                    List<bool> keyG = LFSR.GeffeKey(key1, key2, key3);

                    LFSR lfsr = new LFSR(keyG, bytes.ToArray());

                    byte[] cipher = lfsr.GetNewBitArray();
                    richTextBox3.Text = Services.ByteArrayToString(cipher);

                    richTextBox2.Text = Services.BoolArrayToString(keyG);
                    richTextBox4.Text = Services.BoolArrayToString(key1);
                    richTextBox5.Text = Services.BoolArrayToString(key2);
                    richTextBox6.Text = Services.BoolArrayToString(key3);

                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        BinaryWriter bw = new BinaryWriter(File.Create(saveFileDialog1.FileName));
                        bw.Write(cipher);
                        bw.Close();
                    }
                }
            }
            catch { }
            finally { }
        }