Пример #1
0
        public static void DoRCY(string txt, string pass, int count)
        {
            var rc4x = new RCY(pass);

            System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
            stopwatch.Start();
            for (int i = 0; i < count; i++)
            {
                rc4x.Encrypt(txt);
            }
            stopwatch.Stop();
            Console.WriteLine("RCY => " + stopwatch.ElapsedMilliseconds.ToString() + "ms");
        }
Пример #2
0
        static void Main(string[] args)
        {
            Encoding encoding = Encoding.ASCII;

            Console.WriteLine("配置说明:");
            Console.WriteLine("    编码类型(Encoding):ASCII");
            Console.WriteLine("    输出数据类型(output data type):Base64_Url");
            Console.WriteLine("    密钥(secret key):ToolGood ");
            Console.WriteLine("");

            Console.WriteLine("1、测试RCX算法的正确性(Testing the correctness of the RCX algorithm)");
            Console.WriteLine("明文(original text):hello RCX!");
            var bytes = RCX.Encrypt("hello RCX!", "ToolGood", encoding);

            Console.WriteLine("加密后数据(ecrypted data):" + Base64.ToBase64ForUrlString(bytes));
            Console.WriteLine("解密后文本(decrypted text):" + Encoding.UTF8.GetString(RCX.Encrypt(bytes, "ToolGood", encoding)));


            Console.WriteLine("2、测试RCX算法的正确性(Testing the correctness of the RCX algorithm)");
            Console.WriteLine("明文(original text):hello RCY!");
            bytes = RCY.Encrypt("hello RCY!", "ToolGood", encoding);
            Console.WriteLine("加密后数据(ecrypted data):" + Base64.ToBase64ForUrlString(bytes));
            Console.WriteLine("解密后文本(decrypted text):" + Encoding.UTF8.GetString(RCY.Encrypt(bytes, "ToolGood", encoding)));


            Console.WriteLine("");
            Console.WriteLine("3、测试RCX算法的变化能力(Testing the ability to change the RCX algorithm)");
            Console.WriteLine("RC4('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RC4.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RC4('ACBDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RC4.Encrypt("ACBDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RC4('CBADDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RC4.Encrypt("CBADDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RC4('1234567891234567891234567') => " + Base64.ToBase64ForUrlString(RC4.Encrypt("1234567891234567891234567", "ToolGood", encoding)));
            Console.WriteLine("RC4('1234567800034567891234567') => " + Base64.ToBase64ForUrlString(RC4.Encrypt("1234567800034567891234567", "ToolGood", encoding)));

            Console.WriteLine("");
            Console.WriteLine("RCX('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCX('ACBDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("ACBDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCX('CBADDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("CBADDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCX('1234567891234567891234567') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("1234567891234567891234567", "ToolGood", encoding)));
            Console.WriteLine("RCX('1234567800034567891234567') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("1234567800034567891234567", "ToolGood", encoding)));

            Console.WriteLine("");
            Console.WriteLine("ThreeRCX('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCX.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCX('ACBDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCX.Encrypt("ACBDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCX('CBADDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCX.Encrypt("CBADDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCX('1234567891234567891234567') => " + Base64.ToBase64ForUrlString(ThreeRCX.Encrypt("1234567891234567891234567", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCX('1234567800034567891234567') => " + Base64.ToBase64ForUrlString(ThreeRCX.Encrypt("1234567800034567891234567", "ToolGood", encoding)));

            Console.WriteLine("");
            Console.WriteLine("RCY('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCY.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCX('ACBDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCY.Encrypt("ACBDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCY('CBADDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCY.Encrypt("CBADDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("RCY('1234567891234567891234567') => " + Base64.ToBase64ForUrlString(RCY.Encrypt("1234567891234567891234567", "ToolGood", encoding)));
            Console.WriteLine("RCY('1234567800034567891234567') => " + Base64.ToBase64ForUrlString(RCY.Encrypt("1234567800034567891234567", "ToolGood", encoding)));

            Console.WriteLine("");
            Console.WriteLine("ThreeRCY('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCY.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCY('ACBDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCY.Encrypt("ACBDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCY('CBADDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(ThreeRCY.Encrypt("CBADDDDDDDDDDDDDDDDDDDDDD", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCY('1234567891234567891234567') => " + Base64.ToBase64ForUrlString(ThreeRCY.Encrypt("1234567891234567891234567", "ToolGood", encoding)));
            Console.WriteLine("ThreeRCY('1234567800034567891234567') => " + Base64.ToBase64ForUrlString(ThreeRCY.Encrypt("1234567800034567891234567", "ToolGood", encoding)));


            //Console.WriteLine("RCX('ABCDDDDDDDDDDDDDDDDDDDDDD') => " + Base64.ToBase64ForUrlString(RCX.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", Encoding.ASCII)));
            var t  = RCX.Encrypt("ABCDDDDDDDDDDDDDDDDDDDDDD", "ToolGood", Encoding.UTF8);
            var dd = Convert.ToBase64String(t);
            var t1 = RCX.Encrypt("测试RCX算法的性能", "ToolGood");

            Console.WriteLine("");
            Console.WriteLine("3、测试RCX算法的性能(Testing the performance of the RCX algorithm)");
            Console.WriteLine("数据长度(data length):10000 ");
            Console.WriteLine("加密次数(encryption count):1000 ");
            var str   = new string('a', 10000);
            var count = 1000;

            DoRC4(str, "ToolGood", count);
            DoRCX(str, "ToolGood", count);
            DoRCY(str, "ToolGood", count);

            Console.ReadKey();
        }