예제 #1
0
        public void MonoTestNewDec()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         plain     = algorithm.Decrypt(newCipher, newKey);

            Assert.IsTrue(plain.Equals(newPlain, StringComparison.InvariantCultureIgnoreCase));
        }
예제 #2
0
        public void MonoTestEnc3()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         cipher    = algorithm.Encrypt(mainPlain2, mainKey1);

            Assert.IsTrue(cipher.Equals(mainCipher2, StringComparison.InvariantCultureIgnoreCase));
        }
예제 #3
0
        public void MonoTestDec2()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         plain     = algorithm.Decrypt(mainCipher1, mainKey1);

            Assert.IsTrue(plain.Equals(mainPlain1, StringComparison.InvariantCultureIgnoreCase));
        }
예제 #4
0
        public void MonoTestDec4()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         cipher    = algorithm.Decrypt(largeCipher, largeKey);

            Assert.IsTrue(cipher.Equals(largePlain, StringComparison.InvariantCultureIgnoreCase));
        }
예제 #5
0
        private void MonoAnalays_Click(object sender, EventArgs e)
        {
            Monoalphabetic mono = new Monoalphabetic();

            string res = mono.Analyse(MonoPlain.Text, MonoCipher.Text);

            MonoKey.Text = res;
        }
예제 #6
0
        private void MOnoDecrypt_Click(object sender, EventArgs e)
        {
            Monoalphabetic mono = new Monoalphabetic();

            string res = mono.Decrypt(MonoCipher.Text, MonoKey.Text);

            MonoPlain.Text = res;
        }
예제 #7
0
        public void MonoTestAnalysisNaive2()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         key       = algorithm.Analyse(mainPlain1, mainCipher1);
            List <char>    keyChar   = new List <char>(key);

            Assert.AreEqual(key.Length, 26);
            Assert.AreEqual(keyChar.Distinct().Count(), 26);
            Assert.IsTrue(key.Equals(mainKey1, StringComparison.InvariantCultureIgnoreCase));
        }
예제 #8
0
        public void MonoTestAnalysisFrequency()
        {
            Monoalphabetic algorithm = new Monoalphabetic();
            string         plain     = algorithm.AnalyseUsingCharFrequency(largeCipher);

            int count = Enumerable.Range(0, largePlain.Length)
                        .Count(i => largePlain[i] == plain[i]);

            Assert.IsTrue(count * 100 / largePlain.Length > 70);
        }
예제 #9
0
        public void MonoTestAnalysisNaive1()
        {
            Regex          regex     = new Regex("d.{3}hijk.{4}p.rs.u.w.{4}b.");
            Monoalphabetic algorithm = new Monoalphabetic();
            string         key       = algorithm.Analyse(mainPlain, mainCipher);
            List <char>    keyChar   = new List <char>(key);

            Assert.AreEqual(key.Length, 26);
            Assert.AreEqual(keyChar.Distinct().Count(), 26);

            Assert.IsTrue(regex.Match(key).Success);
        }
예제 #10
0
        public void MonoTestAnalysisNaive3()
        {
            Regex regex = new Regex("isy.k.{2}ux.{2}zqmct.lofn.{3}a.");

            Monoalphabetic algorithm = new Monoalphabetic();
            string         key       = algorithm.Analyse(mainPlain2, mainCipher2);
            List <char>    keyChar   = new List <char>(key);

            Assert.AreEqual(key.Length, 26);
            Assert.AreEqual(keyChar.Distinct().Count(), 26);
            Assert.IsTrue(regex.Match(key).Success);
        }
예제 #11
0
        public void MonoTestNewAnalysisNaive()
        {
            Regex regex = new Regex("u.ive.sta.{2}dfgh.{2}lmo.qw.{3}");

            Monoalphabetic algorithm = new Monoalphabetic();
            string         key       = algorithm.Analyse(newPlain, newCipher);
            List <char>    keyChar   = new List <char>(key);

            Assert.AreEqual(key.Length, 26);
            Assert.AreEqual(keyChar.Distinct().Count(), 26);

            Assert.IsTrue(regex.Match(key).Success);
        }
예제 #12
0
        public HtmlString MonoalphabeticEncryption(string givenText)
        {
            Monoalphabetic encryptor = new Monoalphabetic();

            return(new HtmlString(encryptor.Encrypt(givenText.ToLower())));
        }
예제 #13
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (comboBox1.Text.Contains("Ceaser"))
     {
         Ceaser c   = new Ceaser();
         string Res = c.Encrypt(textBox1.Text.ToString(), int.Parse(textBox3.Text.ToString()));
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("Monoalphabetic"))
     {
         Monoalphabetic c   = new Monoalphabetic();
         string         Res = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("Columnar"))
     {
         Columnar   c   = new Columnar();
         List <int> key = new List <int>();
         for (int i = 0; i < textBox3.Text.Length; i++)
         {
             key.Add(int.Parse(textBox3.Text[i].ToString()));
         }
         string Res = c.Encrypt(textBox1.Text.ToString(), key);
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("HillCipher"))
     {
         HillCipher c          = new HillCipher();
         List <int> key1       = new List <int>();
         List <int> Plaintext1 = new List <int>();
         string     Res        = "";
         List <int> ResDig     = new List <int>();
         if (char.IsDigit(textBox3.Text[0]) && char.IsDigit(textBox1.Text[0]))
         {
             for (int i = 0; i < textBox1.Text.Length; i++)
             {
                 Plaintext1.Add(int.Parse(textBox1.Text[i].ToString()));
             }
             for (int i = 0; i < textBox3.Text.Length; i++)
             {
                 key1.Add(int.Parse(textBox3.Text[i].ToString()));
             }
             ResDig        = c.Encrypt(Plaintext1, key1);
             textBox4.Text = ResDig.ToString();
         }
         else
         {
             Res           = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
             textBox4.Text = Res;
         }
     }
     else if (comboBox1.Text.Contains("PlayFair"))
     {
         PlayFair c   = new PlayFair();
         string   Res = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("RailFence"))
     {
         RailFence c   = new RailFence();
         string    Res = c.Encrypt(textBox1.Text.ToString(), int.Parse(textBox3.Text.ToString()));
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("RepeatingKeyVigenere"))
     {
         RepeatingkeyVigenere c = new RepeatingkeyVigenere();
         string Res             = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("AutokeyVigenere"))
     {
         AutokeyVigenere c   = new AutokeyVigenere();
         string          Res = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("RSA"))
     {
         RSA      c   = new RSA();
         string   s   = textBox1.Text.ToString();
         string[] str = s.Split(' ');
         int      p   = int.Parse(str[0]);
         int      q   = int.Parse(str[1]);
         int      M   = int.Parse(str[2]);
         int      ee  = int.Parse(str[3]);
         int      Res = c.Encrypt(p, q, M, ee);
         textBox4.Text = Res.ToString();
     }
     else if (comboBox1.Text.Contains("AES"))
     {
         AES    c   = new AES();
         string Res = c.Encrypt(textBox1.Text.ToString(), textBox3.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("MD5"))
     {
         MD5    c   = new MD5();
         string Res = c.GetHash(textBox1.Text.ToString());
         textBox4.Text = Res;
     }
 }
예제 #14
0
 private void button2_Click(object sender, EventArgs e)
 {
     if (comboBox1.Text.Contains("Ceaser"))
     {
         Ceaser c   = new Ceaser();
         int    Res = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res.ToString();
     }
     else if (comboBox1.Text.Contains("Monoalphabetic"))
     {
         Monoalphabetic c   = new Monoalphabetic();
         string         Res = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("Columnar"))
     {
         Columnar   c   = new Columnar();
         List <int> key = new List <int>();
         for (int i = 0; i < textBox3.Text.Length; i++)
         {
             key.Add(int.Parse(textBox3.Text[i].ToString()));
         }
         List <int> Res = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res.ToString();
     }
     else if (comboBox1.Text.Contains("HillCipher"))
     {
         HillCipher c          = new HillCipher();
         List <int> key1       = new List <int>();
         List <int> Plaintext1 = new List <int>();
         string     Res        = "";
         List <int> ResDig     = new List <int>();
         if (textBox5.Text == "2")
         {
             if (char.IsDigit(textBox1.Text[0]) && char.IsDigit(textBox2.Text[0]))
             {
                 for (int i = 0; i < textBox1.Text.Length; i++)
                 {
                     Plaintext1.Add(int.Parse(textBox1.Text[i].ToString()));
                 }
                 for (int i = 0; i < textBox2.Text.Length; i++)
                 {
                     key1.Add(int.Parse(textBox2.Text[i].ToString()));
                 }
                 ResDig        = c.Analyse(Plaintext1, key1);
                 textBox4.Text = ResDig.ToString();
             }
             else
             {
                 Res           = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
                 textBox4.Text = Res;
             }
         }
         else if (textBox5.Text == "3")
         {
             if (char.IsDigit(textBox1.Text[0]) && char.IsDigit(textBox2.Text[0]))
             {
                 for (int i = 0; i < textBox1.Text.Length; i++)
                 {
                     Plaintext1.Add(int.Parse(textBox1.Text[i].ToString()));
                 }
                 for (int i = 0; i < textBox2.Text.Length; i++)
                 {
                     key1.Add(int.Parse(textBox2.Text[i].ToString()));
                 }
                 ResDig        = c.Analyse3By3Key(Plaintext1, key1);
                 textBox4.Text = ResDig.ToString();
             }
             else
             {
                 Res           = c.Analyse3By3Key(textBox1.Text.ToString(), textBox2.Text.ToString());
                 textBox4.Text = Res;
             }
         }
     }
     else if (comboBox1.Text.Contains("RailFence"))
     {
         RailFence c   = new RailFence();
         int       Res = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res.ToString();
     }
     else if (comboBox1.Text.Contains("RepeatingKeyVigenere"))
     {
         RepeatingkeyVigenere c = new RepeatingkeyVigenere();
         string Res             = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res;
     }
     else if (comboBox1.Text.Contains("AutokeyVigenere"))
     {
         AutokeyVigenere c   = new AutokeyVigenere();
         string          Res = c.Analyse(textBox1.Text.ToString(), textBox2.Text.ToString());
         textBox4.Text = Res;
     }
 }