コード例 #1
0
ファイル: DES.cs プロジェクト: nanoboot/LAB_InfSec
        private void ButtonClick(object sender, EventArgs e)
        {
            var Button = sender as Button;
            if (Button == null) return;

                switch (Button.Name)
                {
                    case "Encrypt":
                        if (keyText != null && keyText.Text.Length == 8)
                        {
                            Algorithm = new Modes(GetBitArray(OT.Text), keyText.Text);
                            Algorithm.Encryption();
                            ET.Text = Algorithm.GetText(Algorithm.BitArrayET);
                            GenError.Visible = true;
                        }
                        else
                            MessageBox.Show("Ошибка! Ключ не задан или задан неверно (8 символов)");
                        break;
                    case "Decryption":
                        if (keyText != null && keyText.Text.Length == 8)
                        {
                            PosErr.Visible = false;
                            Algorithm = new Modes(GetBitArray(ET.Text), keyText.Text);
                            Algorithm.Decryption();
                            DT.Text = Algorithm.GetText(Algorithm.BitArrayDT);
                        }
                        else
                            MessageBox.Show("Ошибка! Ключ не задан или задан неверно (длина 8 символов)");
                        break;
                    case "Generate":
                        keyText.Text = Encoding.GetEncoding(1251).GetString(GenerateKey());
                        break;
                    case "GenError":
                        Algorithm = new Modes(GetBitArray(ET.Text), keyText.Text);
                        Random rand = new Random();
                        var randnum = rand.Next(0, Algorithm.BitArrayET.Length);
                        PosErr.Text = "Случайная ошибка в бите №" + (randnum+1) + ",\n(байт №" + (int)(randnum/8 + 1) + ", блок №" + (int)(randnum / 64 + 1) + ")";
                        PosErr.Visible = true;
                        Algorithm.BitArrayET[randnum] = !Algorithm.BitArrayET[randnum];
                        Algorithm.Decryption();
                        DT.Text = Algorithm.GetText(Algorithm.BitArrayDT);
                    break;
                }
        }
コード例 #2
-1
ファイル: DES.cs プロジェクト: nanoboot/LAB_InfSec
 public DES()
 {
     InitializeComponent();
     Algorithm = new Algorithm();
 }