示例#1
0
        private void btEncrypt_Click(object sender, EventArgs e)
        {
            logger.WriteLine($"{DateTime.Now} {cbALgoritm.Text}");
            switch (cbALgoritm.Text)
            {
            case "MAGMA":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else
                {
                    byte[] btText = Encoding.Default.GetBytes(txInputText.Text);
                    byte[] btKey  = Encoding.ASCII.GetBytes(txKey.Text);

                    if ((btKey == null) || (btKey.Length != 32))
                    {
                        MessageBox.Show("Введдите 256-битный ключ.");
                    }
                    else
                    {
                        E32 e32 = new E32(btText, btKey);
                        txOutputText.Text = Encoding.Default.GetString(e32.GetEncryptString);
                    }
                }
            }
            break;

            case "CESAR":
                txOutputText.Text = Cesar.Encode(txInputText.Text);
                break;

            case "VIJENER":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else if (txKey.Text == "")
                {
                    MessageBox.Show("Введите ключ шифрования или используйте вариант с псевдослучайным числом.");
                }
                else if (txKey.Text.Length != txInputText.Text.Length)
                {
                    MessageBox.Show("Ключ и текст должны быть одной длинны.");
                }
                else
                {
                    txOutputText.Text = Vijener.Encode(txInputText.Text, txKey.Text);
                }
            }
            break;

            case "VIJENER_PSEUDO":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else
                {
                    txKey.Text        = Vijener.Generate_Pseudorandom_KeyWord(txInputText.Text.Length, 100);
                    txOutputText.Text = Vijener.Encode(txInputText.Text, txKey.Text);
                }
            }
            break;

            default:
                MessageBox.Show("Не выбран алгоритм");
                break;
            }
        }
示例#2
0
        private void btDecrypt_Click(object sender, EventArgs e)
        {
            logger.WriteLine($"{DateTime.Now} {cbALgoritm.Text}");
            switch (cbALgoritm.Text)
            {
            case "MAGMA":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else
                {
                    byte[] btText = Encoding.Default.GetBytes(txInputText.Text);
                    byte[] btKey  = Encoding.ASCII.GetBytes(txKey.Text);

                    if ((btKey == null) || (btKey.Length != 32))
                    {
                        MessageBox.Show("Введдите 256-битный ключ.");
                    }
                    else
                    {
                        D32 d32 = new D32(btText, btKey);
                        txOutputText.Text = Encoding.Default.GetString(d32.GetDecryptString);
                    }
                }
            }
            break;

            case "CESAR":
                txOutputText.Text = Cesar.Decode(txInputText.Text);
                break;

            case "VIJENER":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else
                {
                    txOutputText.Text = Vijener.Decode(txInputText.Text, txKey.Text);
                }
            }
            break;

            case "VIJENER_PSEUDO":
            {
                if (txInputText.Text == "")
                {
                    MessageBox.Show("Введите данные для шифрования.");
                }
                else
                {
                    txOutputText.Text = Vijener.Decode(txInputText.Text, txKey.Text);
                }
            }
            break;

            default:
                MessageBox.Show("Не выбран алгоритм");
                break;
            }
        }