Esempio n. 1
0
        public ArrayOfKeys(string key, byte[] input)
        {
            //---------Key--------------

            var md5 = new MD5.MD5();

            var Key = new List <byte>(KeyLength);

            var hash = md5.GetHash(key);                            //отримуємо хеш з введеного користувачем ключа

            Key.AddRange(hash);                                     //додаємо утворений хеш в ліст

            Key.AddRange(md5.GetHash(BitConverter.ToString(hash))); //і додаємо ще хеш від хешу тому що в нас довжина ключа 32 байта

            _Key = Key.ToArray();                                   //перетворюємо ліст в масив

            //----------Blocks--------------

            int blocksCount = input.Length / Helper.BlockLength; //дізнаємось кількість блоків

            if (input.Length % Helper.BlockLength != 0)          //додаємо ще один блок, для тих байтів що лишилиь
            {
                blocksCount += 1;
            }

            uint additiveBytes = (uint)(Helper.BlockLength - (input.Length % Helper.BlockLength));//скількома байтами потрібно дозаповнити останній блок

            _Blocks = new byte[blocksCount][];
            for (int i = 0; i < _Blocks.Length - 1; ++i)//записуємо кожен блок в окремий елемент двохвимірного масиву "_Blocks"
            {
                _Blocks[i] = new byte[Helper.BlockLength];

                Array.Copy(input, i * Helper.BlockLength, _Blocks[i], 0, Helper.BlockLength);
            }

            var lastBlock = new byte[Helper.BlockLength];

            if (additiveBytes == Helper.BlockLength)//якщо останній блок дорівнює довжині слова
            {
                Array.Copy(input, (_Blocks.Length - 1) * Helper.BlockLength,
                           lastBlock, 0, Helper.BlockLength);
            }
            else if (additiveBytes != Helper.BlockLength)//якщо останній блок недорівнює довжині слова
            {
                Array.Copy(input, (_Blocks.Length - 1) * Helper.BlockLength,
                           lastBlock, 0, Helper.BlockLength - additiveBytes);

                byte additive = BitConverter.GetBytes(additiveBytes).First();

                for (int i = Helper.BlockLength - (int)additiveBytes; i < Helper.BlockLength; ++i)
                {
                    lastBlock[i] = additive;
                }
            }

            _Blocks[_Blocks.Length - 1] = lastBlock;//додаємо останній блок
        }
Esempio n. 2
0
    public static void Main()
    {
        MD5.MD5 md = new MD5.MD5(); //rfc 1321 - MD5

        for (;;)
        {
            md.Value = Console.ReadLine();
            Console.WriteLine("MD5 Value =" + md.Value);
            Console.WriteLine("");
        }
    }
Esempio n. 3
0
    public static void Main()
    {
        Console.WriteLine("Ввод строки :\n");
        MD5.MD5 md = new MD5.MD5();

        /*   for(;;)
         * { */
        md.Value = Console.ReadLine();
        Console.WriteLine("результат:\n" + md.Value);
        Console.WriteLine();
        //}
    }
Esempio n. 4
0
        static void Main(string[] args)
        {
            ElGamalBean el = new ElGamalBean(new BigInteger(9473.ToString()),
                                             new BigInteger(3878.ToString()),
                                             new BigInteger(64.ToString()));



            /*Encryptor encryptor = new Encryptor(el, new BigInteger(9.ToString()));
             * Console.WriteLine(encryptor.GetA());
             * Console.WriteLine( encryptor.GetB());
             * encryptor.Decrypt(encryptor.GetA(), encryptor.GetB());*/
            MessageEncryptor me                = new MessageEncryptor();
            string           message           = "hello";
            List <string>    encryptedSequence = me.EncryptMessage(message, el);


            string decryptedHash = me.MessageDecryptor(encryptedSequence, el);

            Console.WriteLine(decryptedHash);

            MD5.MD5 hash = new MD5.MD5();
            hash.Value = message;
            Console.WriteLine(hash.Value);

            if (decryptedHash == hash.Value)
            {
                Console.WriteLine("all right");
            }
            else
            {
                Console.WriteLine("error");
            }

            Encryptor  e = new Encryptor(el);
            BigInteger a = e.GetA();
            BigInteger b = e.GetNDSAB(new BigInteger("104"));

            Encryptor  encryptor   = new Encryptor(el);
            BigInteger firstCheck  = el.g.ModPow(new BigInteger("104"), el.p);
            BigInteger secondChech = encryptor.GetSecondCheck();
        }
Esempio n. 5
0
    public static void Main()
    {
        char i;
        bool wantexit = false;


        try
        {
            Console.WriteLine("Please select a mode for Demostration");


            while (!wantexit)
            {
                Console.WriteLine("1)Console");
                Console.WriteLine("2)Windows");
                Console.WriteLine("3)exit");
                Console.Write("So what do u want 1/2/3>");
                i = (char)Console.Read();

                if (i == '1')
                {
                    MD5.MD5 md;
                    string  tstr;
                    md = new MD5.MD5();

                    Console.WriteLine("Enter ur string to see what it hashes to");
                    Console.WriteLine("To quit the program Enter 3 as new value ");

                    Console.WriteLine(""); Console.WriteLine("");
                    Console.Write("New Value>");
                    tstr = Console.ReadLine();
                    while (tstr.ToUpper() != "THANK YOU")
                    {
                        md.Value = tstr;
                        Console.WriteLine("MD5 Value =" + md.FingerPrint);
                        Console.Write("New Value>");
                        tstr = Console.ReadLine();
                    }

                    wantexit = true;
                }
                else if (i == '2')
                {
                    FrmDriver fd = new FrmDriver();
                    //fd.Show();
                    fd.ShowDialog();

                    wantexit = true;
                }
                else if (i == '3')
                {
                    wantexit = true;
                }

                else
                {
                    wantexit = false;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("error {0}", ex.Message);
        }

        finally
        {
            Console.WriteLine("press enter to continue");
            Console.Read();
        }
    }
    public static void Main()
    {
        char i;
        bool wantexit = false;


        try
        {
            Console.WriteLine("Asalamo Alikum \n This Program is a driver program for MD5 algo that i have implented");
            Console.WriteLine("Please select a mode for Demostration");


            while (!wantexit)
            {
                Console.WriteLine("1)Console");
                Console.WriteLine("2)Windows");
                Console.WriteLine("3)exit");
                Console.Write("So what do u want 1/2/3>");
                i = (char)Console.Read();

                if (i == '1')
                {
                    MD5.MD5 md;
                    string  tstr;
                    md = new MD5.MD5();

                    Console.WriteLine("Enter ur string to see what it hashes to");
                    Console.WriteLine("To quit the program Enter \"thank you faraz\" as new value ");
                    Console.WriteLine("Dont forget to mail me about ur Comments on the MD5 class");
                    Console.WriteLine("here i am [email protected]");

                    Console.WriteLine(""); Console.WriteLine("");
                    Console.Write("New Value>");
                    tstr = Console.ReadLine();
                    while (tstr.ToUpper() != "THANK YOU FARAZ")
                    {
                        md.Value = tstr;
                        Console.WriteLine("MD5 Value =" + md.FingerPrint);
                        Console.Write("New Value>");
                        tstr = Console.ReadLine();
                    }

                    wantexit = true;
                }
                else if (i == '2')
                {
                    FrmDriver fd = new FrmDriver();
                    //fd.Show();
                    fd.ShowDialog();

                    wantexit = true;
                }
                else if (i == '3')
                {
                    wantexit = true;
                }

                else
                {
                    wantexit = false;
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("error {0}", ex.Message);
        }

        finally
        {
            Console.WriteLine("press enter to continue");
            Console.Read();
        }
    }