使用非对称加密算法的例子

原创 2006年05月26日 14:01:00

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

/// <summary>
/// 一个简单的使用.NET非对称加密算法的例子
/// 本例的程序很简单,仅用于说明如何在.NET里面使用非对称(RSA)算法。
/// </summary>
class Class1
{
 public static void Main(string[] args)
 {
  Class1 c=new Class1();
  c.StartDemo();
 }

 public void StartDemo()
 {
  //RSA的加解密过程:
  //  有 rsa1 和 rsa2 两个RSA对象。
  //  现在要 rsa2 发送一段信息给 rsa1, 则先由 rsa1 发送“公钥”给 rsa2
  //  rsa2 获取得公钥之后,用来加密要发送的数据内容。
  //  rsa1 获取加密后的内容后,用自己的私钥解密,得出原始的数据内容。

  RSACryptoServiceProvider rsa1 = new RSACryptoServiceProvider();
  RSACryptoServiceProvider rsa2 = new RSACryptoServiceProvider();

  string publickey;
  publickey=rsa1.ToXmlString(false);  //导出 rsa1 的公钥

  string plaintext;
  plaintext="你好吗?这是用于测试的字符串。";  //原始数据
  Console.WriteLine("原始数据是:/n{0}/n",plaintext);

  rsa2.FromXmlString(publickey); //rsa2 导入 rsa1 的公钥,用于加密信息

  //rsa2开始加密
  byte[] cipherbytes;
  cipherbytes=rsa2.Encrypt(
   Encoding.UTF8.GetBytes(plaintext),
   false);

  /*//////////////////////////////////////////////*/
  Console.WriteLine("加密后的数据是:");
  for(int i=0; i< cipherbytes.Length; i++)
  {
   Console.Write("{0:X2} ",cipherbytes[i]);
  }
  Console.WriteLine("/n");
  /*//////////////////////////////////////////////*/

  //rsa1开始解密
  byte[] plaintbytes;
  plaintbytes = rsa1.Decrypt(cipherbytes,false);

  Console.WriteLine("解密后的数据是:");
  Console.WriteLine(Encoding.UTF8.GetString(plaintbytes));

  Console.ReadLine();
 }

}

 

相关文章推荐

非对称加密算法---加密学习笔记(四)

介绍:非对称加密相对与对称加密算法来说是高级的。 举个双保险的例子: 银行的保险柜,客户往银行的保险柜存贵重东西,这个保险柜的钥匙会有两把,客户有一把,银行有一把。如果想打开保险柜就需要银行的...

使用对称加密算法的例子

using System;using System.Security.Cryptography;using System.Text;using System.IO;/// /// 使用对称加密算法的例...

对称加密与非对称加密理解和非对称加密的java例子

对称加密与非对称加密理解和非对称加密的java例子 1.对称加密:一般小于256 bit的密钥,密钥越大越安全,但是解密和加密时间越长。加密和解密都是用的相同的密钥,快速简单 2.非对称加密:有公...

非对称加密举例讲解

公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。       使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:  ...
  • zj0078
  • zj0078
  • 2013年02月19日 15:18
  • 1040

Java非对称加密算法--RSA加密算法

Java非对称加密算法--RSA加密算法 RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)...
  • qiu_11
  • qiu_11
  • 2015年03月17日 17:21
  • 2686

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

非对称加密原理和流程图以及过程实例

与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

VS2010调试Fiddler源码并对其他部分进行删除整合

从我的网盘下载之前下载的源码:http://pan.baidu.com/s/1eRRs18Y。 下载完以及环境部署完毕,点击运行时,页面会打开能运行,运行界面时如下: 下面是我调试的源码下载链接:...

简单理解非对称加密算法

最初理解非对称加密算法是一件很难的事,可能需要看一些晦涩难懂的读物看很长时间才能理解得了,所以今天我打算用一个简单的例子来解释非对称加密算法,希望可以帮助大家快速的理解这个概念。首先,我们设想这样一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用非对称加密算法的例子
举报原因:
原因补充:

(最多只允许输入30个字)