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);  
                
            }
        }
  • 相关阅读:
    搭建负载均衡的环境(利用虚拟机上的四台centos)
    java的IO,AIO简单对比
    【每日分享】关于漏测
    安装xampp后,遇到的各种问题
    端口占用问题——netstat命令
    随笔
    AJAX 状态值(readyState)与状态码(status)详解
    CSS 实践:实现下拉菜单的方法
    css3动画总结
    判断手机运营商
  • 原文地址:https://www.cnblogs.com/ycdx2001/p/3081659.html
Copyright © 2011-2022 走看看