您的位置:首页 > 其它

一个使用公钥签名与加密,使用密钥解密的案例。。。

2017-06-17 15:32 369 查看
static void Main(string[] args)

{

string s = "老王头,这周又开始忙了!";

byte[] data;

RSACryptoServiceProvider rsp = new RSACryptoServiceProvider();

System.IO.File.WriteAllText(@"D:\wangran\公钥.xml", rsp.ToXmlString(false));

System.IO.File.WriteAllText(@"D:\wangran\密钥.xml", rsp.ToXmlString(true));

//byte[] 公钥 = rsp.ExportCspBlob(false);

byte[] 密钥 = rsp.ExportCspBlob(true);//负责解密

//System.IO.File.WriteAllText(@"D:\wangran\公钥.txt", Convert.ToBase64String(公钥));

System.IO.File.WriteAllText(@"D:\wangran\密钥.txt", Convert.ToBase64String(密钥));

data = System.Text.UTF8Encoding.UTF8.GetBytes(s);

byte[] data_1 = rsp.SignData(data, "md5");

byte[] data1 = rsp.Encrypt(data, false);

Console.WriteLine(

System.Text.UTF8Encoding.UTF8.GetString(data));

Console.WriteLine(

System.Text.UTF8Encoding.UTF8.GetString(data_1));

rsp = new RSACryptoServiceProvider();

//rsp.ImportCspBlob(公钥);

rsp.FromXmlString(System.IO.File.ReadAllText(@"D:\wangran\公钥.xml"));

//公钥只签名与加密,不解密

byte[] data2 = rsp.Encrypt(data, false);

Console.WriteLine(Convert.ToBase64String(data1));

Console.WriteLine(Convert.ToBase64String(data2));

//验签

Console.WriteLine(rsp.VerifyData(data, "md5", data_1));

rsp = new RSACryptoServiceProvider();

//rsp.ImportCspBlob(公钥);

rsp.FromXmlString(System.IO.File.ReadAllText(@"D:\wangran\公钥.xml"));

data2 = rsp.Encrypt(data, false);

Console.WriteLine(Convert.ToBase64String(data1));

Console.WriteLine(Convert.ToBase64String(data2));

//验签

Console.WriteLine(rsp.VerifyData(data, "md5", data_1));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rsa 验签 签名 加密 解密
相关文章推荐