这篇文章主要介绍了C#中RSA加密与解密的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
1. RSA加密与解密 -- 使用公钥加密、私钥解密
public class RSATool
{
public string Encrypt(string strText, string strPublicKey)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(strPublicKey);
byte[] byteText = Encoding.UTF8.GetBytes(strText);
byte[] byteEntry = rsa.Encrypt(byteText, false);
return Convert.ToBase64String(byteEntry);
}
public string Decrypt(string strEntryText,string strPrivateKey)
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(strPrivateKey);
byte[] byteEntry = Convert.FromBase64String(strEntryText);
byte[] byteText = rsa.Decrypt(byteEntry, false);
return Encoding.UTF8.GetString(byteText);
}
public Dictionary<string,string> GetKey()
{
Dictionary<string, string> dictKey = new Dictionary<string, string>();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
dictKey.Add("PublicKey", rsa.ToXmlString(false));
dictKey.Add("PrivateKey", rsa.ToXmlString(true));
return dictKey;
}
}
测试:
RSATool myRSA = new RSATool();
Dictionary<string, string> dictK = new Dictionary<string, string>();
dictK = myRSA.GetKey();
string strText = "123456";
Console.WriteLine("要加密的字符串是:{0}", strText);
string str1 = myRSA.Encrypt("123456", dictK["PublicKey"]);
Console.WriteLine("加密后的字符串:{0}", str1);
string str2 = myRSA.Decrypt(str1, dictK["PrivateKey"]);
Console.WriteLine("解密后的字符串:{0}", str2);
2. RSA加密与解密 -- 使用同一个密钥容器进行加密与解密
public class RSAToolX
{
public string Encrypt(string strText)
{
CspParameters CSApars = new CspParameters();
CSApars.KeyContainerName = "Test001";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CSApars);
byte[] byteText = Encoding.UTF8.GetBytes(strText);
byte[] byteEntry = rsa.Encrypt(byteText, false);
return Convert.ToBase64String(byteEntry);
}
public string Decrypt(string strEntryText)
{
CspParameters CSApars = new CspParameters();
CSApars.KeyContainerName = "Test001";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(CSApars);
byte[] byteEntry = Convert.FromBase64String(strEntryText);
byte[] byteText = rsa.Decrypt(byteEntry, false);
return Encoding.UTF8.GetString(byteText);
}
}
测试 :
RSAToolX myRSA = new RSAToolX();
string strText = "123456";
Console.WriteLine("要加密的字符串是:{0}", strText);
string str1 = myRSA.Encrypt("123456");
Console.WriteLine("加密后的字符串:{0}", str1);
string str2 = myRSA.Decrypt(str1);
Console.WriteLine("解密后的字符串:{0}", str2);
总结
以上所述是小编给大家介绍的C#中RSA加密与解密的实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
织梦狗教程
本文标题为:C#中RSA加密与解密的实例详解


基础教程推荐
猜你喜欢
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#中的Linq to JSON操作详解 2023-06-08
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- Unity shader实现高斯模糊效果 2023-01-16
- C#中 Json 序列化去掉null值的方法 2022-11-18
- 实例详解C#实现http不同方法的请求 2022-12-26
- C# 解析XML和反序列化的示例 2023-04-14
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20