Ejemplo n.º 1
0
        static void RSATest()
        {
            var rsa = new RSA(512);

            Console.WriteLine("【512私钥(XML)】:");
            Console.WriteLine(rsa.ToXML());
            Console.WriteLine();
            Console.WriteLine("【512私钥(PEM)】:");
            Console.WriteLine(rsa.ToPEM_PKCS1());
            Console.WriteLine();
            Console.WriteLine("【512公钥(PEM)】:");
            Console.WriteLine(rsa.ToPEM_PKCS1(true));
            Console.WriteLine();

            var str = "abc内容123";
            var en  = rsa.Encode(str);

            Console.WriteLine("【加密】:");
            Console.WriteLine(en);

            Console.WriteLine("【解密】:");
            Console.WriteLine(rsa.DecodeOrNull(en));

            Console.WriteLine("【签名SHA1】:");
            Console.WriteLine(rsa.Sign("SHA1", str));
            Console.WriteLine();

            string a = S_File_Text.Read(@"D:\Net\Web\id_rsa");
            //a = rsa.ToPEM_PKCS8();
            var rsa2 = new RSA(a, true);//rsa.ToPEM_PKCS8()

            Console.WriteLine("【用PEM新创建的RSA是否和上面的一致】:");
            Console.WriteLine("XML:" + (rsa2.ToXML() == rsa.ToXML()));
            Console.WriteLine("PKCS1:" + (rsa2.ToPEM_PKCS1() == rsa.ToPEM_PKCS1()));
            Console.WriteLine("PKCS8:" + (rsa2.ToPEM_PKCS8() == rsa.ToPEM_PKCS8()));

            var rsa3 = new RSA(rsa.ToXML());

            Console.WriteLine("【用XML新创建的RSA是否和上面的一致】:");
            Console.WriteLine("XML:" + (rsa3.ToXML() == rsa.ToXML()));
            Console.WriteLine("PKCS1:" + (rsa3.ToPEM_PKCS1() == rsa.ToPEM_PKCS1()));
            Console.WriteLine("PKCS8:" + (rsa3.ToPEM_PKCS8() == rsa.ToPEM_PKCS8()));

            //var rsa4=new RSA()
        }
Ejemplo n.º 2
0
        static void RSATest()
        {
            var rsa = new RSA(512);

            Console.WriteLine("【512私钥(XML)】:");
            Console.WriteLine(rsa.ToXML());
            Console.WriteLine();
            Console.WriteLine("【512私钥(PEM)】:");
            Console.WriteLine(rsa.ToPEM_PKCS1());
            Console.WriteLine();
            Console.WriteLine("【512公钥(PEM)】:");
            Console.WriteLine(rsa.ToPEM_PKCS1(true));
            Console.WriteLine();

            var str = "abc内容123";
            var en  = rsa.Encode(str);

            Console.WriteLine("【加密】:");
            Console.WriteLine(en);

            Console.WriteLine("【解密】:");
            Console.WriteLine(rsa.DecodeOrNull(en));

            Console.WriteLine("【签名SHA1】:");
            Console.WriteLine(rsa.Sign("SHA1", str));
            Console.WriteLine();

            var rsa2 = new RSA(rsa.ToPEM_PKCS8(), true);

            Console.WriteLine("【用PEM新创建的RSA是否和上面的一致】:");
            Console.WriteLine("XML:" + (rsa2.ToXML() == rsa.ToXML()));
            Console.WriteLine("PKCS1:" + (rsa2.ToPEM_PKCS1() == rsa.ToPEM_PKCS1()));
            Console.WriteLine("PKCS8:" + (rsa2.ToPEM_PKCS8() == rsa.ToPEM_PKCS8()));

            var rsa3 = new RSA(rsa.ToXML());

            Console.WriteLine("【用XML新创建的RSA是否和上面的一致】:");
            Console.WriteLine("XML:" + (rsa3.ToXML() == rsa.ToXML()));
            Console.WriteLine("PKCS1:" + (rsa3.ToPEM_PKCS1() == rsa.ToPEM_PKCS1()));
            Console.WriteLine("PKCS8:" + (rsa3.ToPEM_PKCS8() == rsa.ToPEM_PKCS8()));
        }