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

作者:在代码的世界里游走 时间:2022-09-01 15:43:06 

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

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

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

来源:https://www.cnblogs.com/ChengWenHao/archive/2019/08/22/CSharpRSA.html

标签:c#,rsa,加密,解密
0
投稿

猜你喜欢

  • WPF自动隐藏的消息框的实例代码

    2023-09-11 09:52:36
  • Struts2修改上传文件大小限制方法解析

    2023-02-22 21:13:19
  • java实现切割wav音频文件的方法详解【附外部jar包下载】

    2021-07-08 22:29:56
  • Java NIO框架Netty简单使用的示例

    2022-09-08 02:51:27
  • 在Java内存模型中测试并发程序代码

    2023-11-24 20:37:55
  • Spring Boot 实现图片上传并回显功能

    2021-10-11 17:45:20
  • 以实例简介Java中线程池的工作特点

    2023-08-11 23:04:19
  • 解读JDK8踩坑JCE加密限制版本问题

    2021-09-20 12:42:35
  • 最详细的文件上传下载实例详解(推荐)

    2021-12-12 08:18:13
  • 介绍Jersey-Jersey入门基础

    2023-11-18 06:34:26
  • MyBatis Plus 入门使用详细教程

    2023-08-23 05:48:33
  • SpringBoot中shiro过滤器的重写与配置详解

    2021-07-28 23:40:09
  • java多线程和并发包入门示例

    2022-05-10 12:29:34
  • C#多线程系列之任务基础(一)

    2022-12-09 04:48:22
  • Java StringBuffer与StringBuilder有什么区别

    2022-12-15 22:35:12
  • java 深拷贝与浅拷贝机制详解

    2023-02-18 19:00:59
  • C#自定义处理xml数据类实例

    2022-07-02 11:00:39
  • maven中下载jar包源码和javadoc的命令介绍

    2023-07-27 04:41:01
  • java实现给出分数数组得到对应名次数组的方法

    2021-06-01 13:58:05
  • IntelliJ IDEA 2020.1.2激活工具下载及破解方法免费可用至2089年(强烈推荐)

    2023-07-29 09:22:11
  • asp之家 软件编程 m.aspxhome.com