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); } }