示例#1
0
文件: Crypt.cs 项目: Sh6abrA/GSCH
        public Crypt(string str)
        {
            bukva = str.ToCharArray();
            flow  = new string[bukva.Length];
            int[] rand = new int[1000];
            for (int i = 0; i < rand.Length; i++)
            {
                rand[i] = i;
            }
            GSCH slovar = new GSCH(rand, 1024);

            key = new string[code.Length];
            for (int i = 0; i < code.Length; i++)
            {
                slovar = new GSCH(slovar.gs, 1024);
                key[i] = slovar.gs[slovar.gs.Length - 1].ToString("X");
                for (int p = 0; p < key.Length; p++)
                {
                    if (key[i] == key[p] && p != i)
                    {
                        slovar = new GSCH(slovar.gs, 1024);
                        key[i] = slovar.gs[slovar.gs.Length - 1].ToString("X");
                        p      = 0;
                    }
                }
                for (int h = 0; h < bukva.Length; h++)
                {
                    for (int j = 0; j < key.Length; j++)
                    {
                        if (bukva[h] == code[j])
                        {
                            flow[h] = key[j];
                            break;
                        }
                    }
                }
            }
        }
示例#2
0
        private void button1_Click(object sender, EventArgs e)
        {
            double s = 2;                                 //2 для возведения в степень
            int    a = Decimal.ToInt32(Diapazon_1.Value); //Диапазон
            int    b = Decimal.ToInt32(Diapazon_2.Value); //Диапазон
            int    n = 0;                                 //Степень 2
            double c = 0;                                 //Сама степень

            while (n < b)                                 //Нахождение необходимой степени 2 для ГПСЧ
            {
                n = (int)Math.Pow(s, c);
                c++;
            }
            int[] massiv = new int[b - a]; //Создание массива с числами
            int   q      = a;

            for (int l = 0; l < massiv.Length; l++) //Заполнение массива
            {
                massiv[l] = q;
                q++;
            }
            GSCH vihod = new GSCH(massiv, n);

            Vivod.Text = "Результат работы генератора:" + vihod.gs[^ 1];