zoukankan      html  css  js  c++  java
  • c#公钥加密私钥解密和验证

    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);  
                
            }
        }
  • 相关阅读:
    2015多校.Zero Escape (dp减枝 && 滚动数组)
    UVa-11809
    UVa-1588 Kickdown
    UVa-1587
    UVa-10340
    UVa-202
    UVa-1368
    UVa-232 Crossword Answers
    UVa-227
    UVa-455 Periodic Strings
  • 原文地址:https://www.cnblogs.com/ycdx2001/p/3081659.html
Copyright © 2011-2022 走看看