c#公開鍵暗号化秘密鍵の復号と検証

5977 ワード

public partial class Form1 : Form {

        private string Estring;

        private string priKey;

        private string pubKey;

        public Form1()

        {

            InitializeComponent();

            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

            priKey = rsa.ToXmlString(true);

            pubKey = rsa.ToXmlString(false);

        }



        public static string RSAEncrypt(string publickey,string content) {

            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

            byte[] cipherbytes;

            rsa.FromXmlString(publickey);

            cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);

            return Convert.ToBase64String(cipherbytes);



        }



        public static string RSADecrypt(string privateKey, string content)

        {

            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();

            byte[] cipherbytes;

            rsa.FromXmlString(privateKey);

            cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);

            return Encoding.UTF8.GetString(cipherbytes);



        }



        private void button1_Click(object sender, EventArgs e) {

            Estring = RSAEncrypt(pubKey, "Hi Bob");



        }



        private void button2_Click(object sender, EventArgs e) {

            string DString;

            DString = RSADecrypt(priKey, Estring);

        }



        private void button3_Click(object sender, EventArgs e)

        {

            byte[] messagebytes = Encoding.UTF8.GetBytes("luo ");

            RSACryptoServiceProvider oRSA = new RSACryptoServiceProvider();

            string privatekey = oRSA.ToXmlString(true);

            string publickey = oRSA.ToXmlString(false);



            //   

            RSACryptoServiceProvider oRSA3 = new RSACryptoServiceProvider();

            oRSA3.FromXmlString(privatekey);

            byte[] AOutput = oRSA3.SignData(messagebytes, "SHA1");

            //   

            RSACryptoServiceProvider oRSA4 = new RSACryptoServiceProvider();

            oRSA4.FromXmlString(publickey);

            bool bVerify = oRSA4.VerifyData(messagebytes, "SHA1", AOutput);  

            

        }

    }