服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#中RSA加密与解密的实例详解

C#中RSA加密与解密的实例详解

2022-08-03 15:28在代码的世界里游走 C#

这篇文章主要介绍了C#中RSA加密与解密的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

1.  RSA加密与解密  --  使用公钥加密、私钥解密

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;
  }
 }

测试:

?
1
2
3
4
5
6
7
8
9
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);

C#中RSA加密与解密的实例详解

2.  RSA加密与解密  --  使用同一个密钥容器进行加密与解密

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
 }
}

测试 :

?
1
2
3
4
5
6
7
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加密与解密的实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

原文链接:https://www.cnblogs.com/ChengWenHao/archive/2019/08/22/CSharpRSA.html

延伸 · 阅读

精彩推荐
  • C#C#将Excel转成PDF的方法

    C#将Excel转成PDF的方法

    今天小编就为大家分享一篇关于C#将Excel转成PDF的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    chenqiangdage7452022-03-08
  • C#c#开发cad预览图块步骤详解

    c#开发cad预览图块步骤详解

    在本篇文章里小编给大家分享了关于c#开发cad预览图块步骤和相关知识点,需要的朋友们学习下。...

    C#教程网3652022-07-07
  • C#C#使用InstallerProjects打包桌面应用程序的完整步骤

    C#使用InstallerProjects打包桌面应用程序的完整步骤

    这篇文章主要给大家介绍了关于C#使用InstallerProjects打包桌面应用程序的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参...

    kiba5186682022-07-28
  • C#C#简单生成随机密码的方法示例

    C#简单生成随机密码的方法示例

    这篇文章主要介绍了C#简单生成随机密码的方法,结合具体实例形式分析了C#生成随机密码操作的前台界面与后台处理技巧,需要的朋友可以参考下...

    zhangsiyan6242022-01-10
  • C#C#实现子窗体与父窗体通信方法实例总结

    C#实现子窗体与父窗体通信方法实例总结

    这篇文章主要介绍了C#实现子窗体与父窗体通信方法,实例总结了常用的四种窗体通信方法,具有一定参考借鉴价值,需要的朋友可以参考下...

    C#教程网8322021-10-26
  • C#轻松学习C#的属性

    轻松学习C#的属性

    轻松学习C#的属性,对C#的属性感兴趣的朋友可以参考本篇文章,帮助大家更灵活的运用C#的属性。...

    丿木呈广予口贝5482021-11-04
  • C#C# 添加PDF页眉/页脚的示例代码

    C# 添加PDF页眉/页脚的示例代码

    这篇文章主要介绍了C# 添加PDF页眉/页脚的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Miaonly9742022-02-28
  • C#string类的使用方法详解

    string类的使用方法详解

    本文主要为大家介绍C#中string类的使用方法详解,具有一定的参考价值,有需要得朋友可以参考下...

    C#教程网2382020-12-15