private void Button_Click(object sender, System.Windows.RoutedEventArgs eargs)
        {
            string plain = edPlainText.Text;

            StringBuilder numberBuilder = new StringBuilder();
            StringBuilder cryptBuilder  = new StringBuilder();

            int count = 0;

            foreach (char chr in plain)
            {
                char cr = char.ToUpper(chr);

                if (cr == ' ')
                {
                    numberBuilder.Append("00");
                    cryptBuilder.Append("00");
                }
                else if (cr >= 'A' && cr <= 'Z')
                {
                    numberBuilder.AppendFormat("{0:00}", (int)(cr - 'A' + 1));
                    cryptBuilder.AppendFormat("{0:00}", (int)(cr - 'A' + 1));
                }

                numberBuilder.Append(" ");

                if (count++ == 2)
                {
                    cryptBuilder.Append(" ");
                    count = 0;
                }
            }

            edNumberized.Text   = numberBuilder.ToString();
            edPlainNumbers.Text = cryptBuilder.ToString();


            //###############

            long e = ed_Key_e.Value.Value;
            long n = ed_Key_n.Value.Value;

            StringBuilder readyBuilder = new StringBuilder();

            foreach (int b in cryptBuilder.ToString().Split(' ').Where(p => RSAHelper.isInt(p)).Select(p => Convert.ToInt64(p)).ToList())
            {
                string dbgout  = "";
                string dbgout2 = "";
                long   v       = RSAHelper.BinaryModuloPow(b, e, n, ref dbgout, ref dbgout2);

                readyBuilder.AppendFormat("{0:000000} ", v);
            }

            edCryptNumbers.Text = readyBuilder.ToString();
        }
Beispiel #2
0
        private void Button_Click(object sender, System.Windows.RoutedEventArgs eargs)
        {
            long d = ed_Key_d.Value.Value;
            long n = ed_Key_n.Value.Value;

            string code = edCryptNumbers.Text;

            StringBuilder readyBuilder = new StringBuilder();

            foreach (int b in code.Split(' ').Where(p => RSAHelper.isInt(p)).Select(p => Convert.ToInt64(p)).ToList())
            {
                string dbgout  = "";
                string dbgout2 = "";
                long   v       = RSAHelper.BinaryModuloPow(b, d, n, ref dbgout, ref dbgout2);

                readyBuilder.AppendFormat("{0:000000} ", v);
            }
            edNumberized.Text = readyBuilder.ToString();

            StringBuilder numberBuilder = new StringBuilder();

            foreach (int b in readyBuilder.ToString().Split(' ').Where(p => RSAHelper.isInt(p)).Select(p => Convert.ToInt64(p)).ToList())
            {
                numberBuilder.AppendFormat("{0:00} ", (b / 10000) % 100);
                numberBuilder.AppendFormat("{0:00} ", (b / 100) % 100);
                numberBuilder.AppendFormat("{0:00} ", (b / 1) % 100);
            }
            edPlainNumbers.Text = numberBuilder.ToString();

            StringBuilder textBuilder = new StringBuilder();

            foreach (int b in numberBuilder.ToString().Split(' ').Where(p => RSAHelper.isInt(p)).Select(p => Convert.ToInt64(p)).ToList())
            {
                if (b == 0)
                {
                    textBuilder.Append(' ');
                }
                else
                {
                    textBuilder.Append((char)('A' + (b - 1)));
                }
            }

            edPlainText.Text = textBuilder.ToString();
        }