加密net程序
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO ;
using System.Diagnostics ;
using System.Threading ;
namespace 偽裝文件夾
{
 /// <summary>
 /// Form1 的摘要說明。
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.GroupBox groupBox1;
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.FolderBrowserDialog foldeOpen;
  private System.Windows.Forms.TextBox AfoldePath;
  private System.Windows.Forms.GroupBox groupBox2;
  private System.Windows.Forms.Button button2;
  private System.Windows.Forms.Button button3;
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.Button AddPassword;
  private System.Windows.Forms.ComboBox comboBox1;
  private System.ComponentModel.IContainer components;
  public Form1()
  {
   //
   // Windows 窗體設計器支持所必需的
   //
   InitializeComponent();
   //
   // TODO: 在 InitializeComponent 調用後添加任何構造函數代碼
   //
  }
  /// <summary>
  /// 清理所有正在使用的資源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null) 
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }
  #region Windows 窗體設計器生成的代碼
  /// <summary>
  /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void InitializeComponent()
  {
   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
   this.groupBox1 = new System.Windows.Forms.GroupBox();
   this.comboBox1 = new System.Windows.Forms.ComboBox();
   this.AddPassword = new System.Windows.Forms.Button();
   this.button1 = new System.Windows.Forms.Button();
   this.AfoldePath = new System.Windows.Forms.TextBox();
   this.foldeOpen = new System.Windows.Forms.FolderBrowserDialog();
   this.groupBox2 = new System.Windows.Forms.GroupBox();
   this.button2 = new System.Windows.Forms.Button();
   this.button3 = new System.Windows.Forms.Button();
   this.textBox1 = new System.Windows.Forms.TextBox();
   this.groupBox1.SuspendLayout();
   this.groupBox2.SuspendLayout();
   this.SuspendLayout();
   // 
   // groupBox1
   // 
   this.groupBox1.BackColor = System.Drawing.Color.Transparent;
   this.groupBox1.Controls.Add(this.comboBox1);
   this.groupBox1.Controls.Add(this.AddPassword);
   this.groupBox1.Controls.Add(this.button1);
   this.groupBox1.Controls.Add(this.AfoldePath);
   this.groupBox1.Location = new System.Drawing.Point(6, 6);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(276, 78);
   this.groupBox1.TabIndex = 0;
   this.groupBox1.TabStop = false;
   this.groupBox1.Text = "加密";
   // 
   // comboBox1
   // 
   this.comboBox1.Items.AddRange(new object[] {
                 "我的電腦",
                 "我的文檔",
                 "撥號網路",
                 "控制面板",
                 "計劃任務",
                 "列印機",
                 "記事本",
                 "網路鄰居",
                 "回收站",
                 "公文包",
                 "字體 ",
                 "Web 文件夾"});
   this.comboBox1.Location = new System.Drawing.Point(12, 48);
   this.comboBox1.Name = "comboBox1";
   this.comboBox1.Size = new System.Drawing.Size(174, 20);
   this.comboBox1.TabIndex = 15;
   this.comboBox1.Text = "偽裝類型";
   // 
   // AddPassword
   // 
   this.AddPassword.BackColor = System.Drawing.Color.Transparent;
   this.AddPassword.ForeColor = System.Drawing.Color.Red;
   this.AddPassword.Location = new System.Drawing.Point(192, 48);
   this.AddPassword.Name = "AddPassword";
   this.AddPassword.TabIndex = 14;
   this.AddPassword.Text = "偽裝";
   this.AddPassword.Click += new System.EventHandler(this.AddPassword_Click);
   // 
   // button1
   // 
   this.button1.Location = new System.Drawing.Point(192, 20);
   this.button1.Name = "button1";
   this.button1.TabIndex = 8;
   this.button1.Text = "文件夾路徑";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   // 
   // AfoldePath
   // 
   this.AfoldePath.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(255)), ((System.Byte)(224)), ((System.Byte)(192)));
   this.AfoldePath.Location = new System.Drawing.Point(12, 20);
   this.AfoldePath.Name = "AfoldePath";
   this.AfoldePath.ReadOnly = true;
   this.AfoldePath.Size = new System.Drawing.Size(174, 21);
   this.AfoldePath.TabIndex = 7;
   this.AfoldePath.Text = "";
   // 
   // groupBox2
   // 
   this.groupBox2.BackColor = System.Drawing.Color.Transparent;
   this.groupBox2.Controls.Add(this.button2);
   this.groupBox2.Controls.Add(this.button3);
   this.groupBox2.Controls.Add(this.textBox1);
   this.groupBox2.Location = new System.Drawing.Point(6, 90);
   this.groupBox2.Name = "groupBox2";
   this.groupBox2.Size = new System.Drawing.Size(276, 76);
   this.groupBox2.TabIndex = 1;
   this.groupBox2.TabStop = false;
   this.groupBox2.Text = "解密";
   // 
   // button2
   // 
   this.button2.ForeColor = System.Drawing.Color.Red;
   this.button2.Location = new System.Drawing.Point(192, 48);
   this.button2.Name = "button2";
   this.button2.TabIndex = 14;
   this.button2.Text = "解密";
   this.button2.Click += new System.EventHandler(this.button2_Click);
   // 
   // button3
   // 
   this.button3.ForeColor = System.Drawing.Color.Red;
   this.button3.Location = new System.Drawing.Point(192, 20);
   this.button3.Name = "button3";
   this.button3.TabIndex = 8;
   this.button3.Text = "文件夾路徑";
   this.button3.Click += new System.EventHandler(this.button3_Click);
   // 
   // textBox1
   // 
   this.textBox1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(255)), ((System.Byte)(128)));
   this.textBox1.Location = new System.Drawing.Point(12, 24);
   this.textBox1.Name = "textBox1";
   this.textBox1.ReadOnly = true;
   this.textBox1.Size = new System.Drawing.Size(174, 21);
   this.textBox1.TabIndex = 7;
   this.textBox1.Text = "";
   // 
   // Form1
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(288, 174);
   this.Controls.Add(this.groupBox2);
   this.Controls.Add(this.groupBox1);
   this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
   this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   this.MaximizeBox = false;
   this.Name = "Form1";
   this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
   this.Text = "偽裝文件夾";
   this.groupBox1.ResumeLayout(false);
   this.groupBox2.ResumeLayout(false);
   this.ResumeLayout(false);
  }
  #endregion
  /// <summary>
  /// 應用程序的主入口點。
  /// </summary>
  [STAThread]
  static void Main() 
  {
   Application.Run(new Form1());
  }
  private void button1_Click(object sender, System.EventArgs e)
  {
   if(foldeOpen.ShowDialog ()==DialogResult.OK )
   {
    try
    {
     if(foldeOpen.SelectedPath .Substring (3,10)=="Documents ")
     {
      MessageBox.Show ("我不建議C盤下的文件夾偽裝,這樣可能會導致系統出問題");
     }
     else
     {
      AfoldePath.Text =foldeOpen.SelectedPath;
     }
    }
    catch
    {
     if(foldeOpen.SelectedPath.Length >=4)
     {
      AfoldePath.Text =foldeOpen.SelectedPath;
     }
     else
     {
      MessageBox.Show ("無法對盤符進行偽裝.");
     }
    }
   }
  }
  private void AddPassword_Click(object sender, System.EventArgs e)
  {
   try
   {
    ProcessStartInfo p3=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+AfoldePath.Text);
    p3.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p3);
    ProcessStartInfo p1=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+AfoldePath.Text+@"\desktop.ini");
    p1.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p1);
    StreamWriter sw2=new StreamWriter (AfoldePath.Text+@"\desktop.ini" );
    sw2.WriteLine (@"[.ShellClassInfo]" );
    sw2.WriteLine ("CLSID="+GetPasType());
    sw2.Close ();
    ProcessStartInfo p =new ProcessStartInfo ("attrib.exe",@"+s +a +h +r "+AfoldePath.Text+@"\desktop.ini");
    p.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p);
    ProcessStartInfo p2=new ProcessStartInfo ("attrib.exe",@"+s +r "+AfoldePath.Text);
    p2.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p2);
   }
   catch(Exception ee)
   {
    MessageBox.Show (ee.Message .ToString ());
   }
  }
  private string GetPasType()
  {
   int index=comboBox1.SelectedIndex;
   switch (index)
   {
     case 0: return @"{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
     case 1: return @"{450D8FBA-AD25-11D0-98A8-0800361B1103}";
     case 2: return @"{992CFFA0-F557-101A-88EC-00DD010CCC48}";
     case 3: return @"{21EC2020-3AEA-1069-A2DD-08002B30309D}";
     case 4: return @"{D6277990-4C6A-11CF-8D87-00AA0060F5BF}";
     case 5: return @"{2227A280-3AEA-1069-A2DE-08002B30309D}";
     case 6: return @"{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}";
     case 7: return @"{208D2C60-3AEA-1069-A2D7-08002B30309D}";
     case 8: return @"{645FF040-5081-101B-9F08-00AA002F954E}";
     case 9: return @"{85BBD920-42A0-1069-A2E4-08002B30309D}";
     case 10: return @"{BD84B380-8CA2-1069-AB1D-08000948F534}";
     case 11: return @"{BDEADF00-C265-11d0-BCED-00A0C90AB50F}"; 
   }
   return @"{20D04FE0-3AEA-1069-A2D8-08002B30309D}";
  }
  private void button3_Click(object sender, System.EventArgs e)
  {
   if(foldeOpen.ShowDialog ()==DialogResult.OK )
   {
    textBox1.Text =foldeOpen.SelectedPath;
   }
  }
  private void button2_Click(object sender, System.EventArgs e)
  {
   try
   {
       ProcessStartInfo p2=new ProcessStartInfo ("attrib.exe",@"-s -r -a -h "+textBox1.Text);
    p2.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p2);
    ProcessStartInfo p1=new ProcessStartInfo ("attrib.exe",@"-s -h -r "+textBox1.Text+@"\desktop.ini");
    p1.WindowStyle= System.Diagnostics.ProcessWindowStyle.Hidden;
    Process.Start (p1);
    System.Threading.Thread.Sleep(1000);
    File.Delete (textBox1.Text+@"\desktop.ini");
    MessageBox.Show ("解密成功.");
   }
   catch(Exception ee)
   {
    MessageBox.Show (ee.Message.ToString ());
   }
  }
 }
}
㈡ .NET如何實現數據加密
http://www.microsoft.com/china/technet/security/guidance/secmod39.mspx(最好的理論資料)
建立一個win form程序,然後把代碼拷到後台,即可實現C#非對稱加密程序 。 
using System; 
using System.Drawing; 
using System.Collections; 
using System.ComponentModel; 
using System.Windows.Forms; 
using System.Data; 
using System.IO; 
using System.Text; 
using System.Security.Cryptography; 
namespace 非對稱加密 
{ 
/// <summary> 
/// Form1 的摘要說明。 
/// </summary> 
public class Form1 : System.Windows.Forms.Form 
{ 
private System.Windows.Forms.TabControl tabControl1; 
private System.Windows.Forms.TabPage tabPage1; 
private System.Windows.Forms.TabPage tabPage2; 
private System.Windows.Forms.Button button1; 
private System.Windows.Forms.Button button2; 
private System.Windows.Forms.Button button3; 
private System.Windows.Forms.SaveFileDialog save; 
private System.Windows.Forms.Label label1; 
private System.Windows.Forms.TextBox textBox1; 
private System.Windows.Forms.Button button4; 
private System.Windows.Forms.Button button5; 
private System.Windows.Forms.Label label2; 
private System.Windows.Forms.RichTextBox richtext2; 
private System.Windows.Forms.OpenFileDialog open; 
private System.Windows.Forms.Label label3; 
private System.Windows.Forms.RichTextBox richtext3; 
private System.Windows.Forms.RichTextBox richtext; 
private System.Windows.Forms.Button button6; 
private System.Windows.Forms.Button button7; 
private System.Windows.Forms.Button button8; 
/// <summary> 
/// 必需的設計器變數。 
private static RSACryptoServiceProvider crypt; 
private static string privatekey; 
private static string publickey; 
private static byte [] bytes; 
private static string publicinfo; 
private static string privateinfo; 
private static string readpublickey; 
private static string readprivatekey; 
// ///private static byte [] onebytes ; 
/// </summary> 
private System.ComponentModel.Container components = null; 
public Form1() 
{ 
// 
// Windows 窗體設計器支持所必需的 
// 
InitializeComponent(); 
// 
// TODO: 在 InitializeComponent 調用後添加任何構造函數代碼 
// 
} 
/// <summary> 
/// 清理所有正在使用的資源。 
/// </summary> 
protected override void Dispose( bool disposing ) 
{ 
if( disposing ) 
{ 
if (components != null) 
{ 
components.Dispose(); 
} 
} 
base.Dispose( disposing ); 
} 
#region Windows 窗體設計器生成的代碼 
/// <summary> 
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改 
/// 此方法的內容。 
/// </summary> 
private void InitializeComponent() 
{ 
this.tabControl1 = new System.Windows.Forms.TabControl(); 
this.tabPage1 = new System.Windows.Forms.TabPage(); 
this.button6 = new System.Windows.Forms.Button(); 
this.button3 = new System.Windows.Forms.Button(); 
this.button2 = new System.Windows.Forms.Button(); 
this.richtext = new System.Windows.Forms.RichTextBox(); 
this.button1 = new System.Windows.Forms.Button(); 
this.tabPage2 = new System.Windows.Forms.TabPage(); 
this.button8 = new System.Windows.Forms.Button(); 
this.button7 = new System.Windows.Forms.Button(); 
this.label3 = new System.Windows.Forms.Label(); 
this.richtext3 = new System.Windows.Forms.RichTextBox(); 
this.label2 = new System.Windows.Forms.Label(); 
this.richtext2 = new System.Windows.Forms.RichTextBox(); 
this.button5 = new System.Windows.Forms.Button(); 
this.button4 = new System.Windows.Forms.Button(); 
this.textBox1 = new System.Windows.Forms.TextBox(); 
this.label1 = new System.Windows.Forms.Label(); 
this.save = new System.Windows.Forms.SaveFileDialog(); 
this.open = new System.Windows.Forms.OpenFileDialog(); 
this.tabControl1.SuspendLayout(); 
this.tabPage1.SuspendLayout(); 
this.tabPage2.SuspendLayout(); 
this.SuspendLayout(); 
// 
// tabControl1 
// 
this.tabControl1.Controls.Add(this.tabPage1); 
this.tabControl1.Controls.Add(this.tabPage2); 
this.tabControl1.Location = new System.Drawing.Point(32, 64); 
this.tabControl1.Name = "tabControl1"; 
this.tabControl1.SelectedIndex = 0; 
this.tabControl1.Size = new System.Drawing.Size(416, 280); 
this.tabControl1.TabIndex = 0; 
// 
// tabPage1 
// 
this.tabPage1.Controls.Add(this.button6); 
this.tabPage1.Controls.Add(this.button3); 
this.tabPage1.Controls.Add(this.button2); 
this.tabPage1.Controls.Add(this.richtext); 
this.tabPage1.Controls.Add(this.button1); 
this.tabPage1.Location = new System.Drawing.Point(4, 21); 
this.tabPage1.Name = "tabPage1"; 
this.tabPage1.Size = new System.Drawing.Size(408, 255); 
this.tabPage1.TabIndex = 0; 
this.tabPage1.Text = "得到鑰匙"; 
// 
// button6 
// 
this.button6.Location = new System.Drawing.Point(72, 168); 
this.button6.Name = "button6"; 
this.button6.TabIndex = 4; 
this.button6.Text = "寫入文件"; 
this.button6.Click += new System.EventHandler(this.button6_Click); 
// 
// button3 
// 
this.button3.Location = new System.Drawing.Point(200, 16); 
this.button3.Name = "button3"; 
this.button3.TabIndex = 3; 
this.button3.Text = "保存私匙"; 
this.button3.Click += new System.EventHandler(this.button3_Click); 
// 
// button2 
// 
this.button2.Location = new System.Drawing.Point(128, 16); 
this.button2.Name = "button2"; 
this.button2.TabIndex = 2; 
this.button2.Text = "保存公鑰"; 
this.button2.Click += new System.EventHandler(this.button2_Click); 
// 
// richtext 
// 
this.richtext.Location = new System.Drawing.Point(16, 56); 
this.richtext.Name = "richtext"; 
this.richtext.Size = new System.Drawing.Size(256, 96); 
this.richtext.TabIndex = 1; 
this.richtext.Text = "richTextBox1"; 
// 
// button1 
// 
this.button1.Location = new System.Drawing.Point(8, 16); 
this.button1.Name = "button1"; 
this.button1.Size = new System.Drawing.Size(88, 23); 
this.button1.TabIndex = 0; 
this.button1.Text = "得到鑰匙信息"; 
this.button1.Click += new System.EventHandler(this.button1_Click); 
// 
// tabPage2 
// 
this.tabPage2.Controls.Add(this.button8); 
this.tabPage2.Controls.Add(this.button7); 
this.tabPage2.Controls.Add(this.label3); 
this.tabPage2.Controls.Add(this.richtext3); 
this.tabPage2.Controls.Add(this.label2); 
this.tabPage2.Controls.Add(this.richtext2); 
this.tabPage2.Controls.Add(this.button5); 
this.tabPage2.Controls.Add(this.button4); 
this.tabPage2.Controls.Add(this.textBox1); 
this.tabPage2.Controls.Add(this.label1); 
this.tabPage2.Location = new System.Drawing.Point(4, 21); 
this.tabPage2.Name = "tabPage2"; 
this.tabPage2.Size = new System.Drawing.Size(408, 255); 
this.tabPage2.TabIndex = 1; 
this.tabPage2.Text = "加密解密文字"; 
// 
// button8 
// 
this.button8.Location = new System.Drawing.Point(216, 72); 
this.button8.Name = "button8"; 
this.button8.TabIndex = 9; 
this.button8.Text = "讀取私匙"; 
this.button8.Click += new System.EventHandler(this.button8_Click); 
// 
// button7 
// 
this.button7.Location = new System.Drawing.Point(56, 72); 
this.button7.Name = "button7"; 
this.button7.TabIndex = 8; 
this.button7.Text = "讀取公匙"; 
this.button7.Click += new System.EventHandler(this.button7_Click); 
// 
// label3 
// 
this.label3.Location = new System.Drawing.Point(200, 120); 
this.label3.Name = "label3"; 
this.label3.Size = new System.Drawing.Size(100, 16); 
this.label3.TabIndex = 7; 
this.label3.Text = "解密結果"; 
// 
// richtext3 
// 
this.richtext3.Location = new System.Drawing.Point(200, 144); 
this.richtext3.Name = "richtext3"; 
this.richtext3.Size = new System.Drawing.Size(120, 72); 
this.richtext3.TabIndex = 6; 
this.richtext3.Text = "richTextBox2"; 
// 
// label2 
// 
this.label2.Location = new System.Drawing.Point(48, 120); 
this.label2.Name = "label2"; 
this.label2.Size = new System.Drawing.Size(128, 16); 
this.label2.TabIndex = 5; 
this.label2.Text = "加密窗口:"; 
// 
// richtext2 
// 
this.richtext2.Location = new System.Drawing.Point(40, 144); 
this.richtext2.Name = "richtext2"; 
this.richtext2.Size = new System.Drawing.Size(120, 72); 
this.richtext2.TabIndex = 4; 
this.richtext2.Text = "richTextBox2"; 
// 
// button5 
// 
this.button5.Location = new System.Drawing.Point(200, 96); 
this.button5.Name = "button5"; 
this.button5.Size = new System.Drawing.Size(112, 23); 
this.button5.TabIndex = 3; 
this.button5.Text = "使用私匙解密"; 
this.button5.Click += new System.EventHandler(this.button5_Click); 
// 
// button4 
// 
this.button4.Location = new System.Drawing.Point(48, 96); 
this.button4.Name = "button4"; 
this.button4.Size = new System.Drawing.Size(96, 23); 
this.button4.TabIndex = 2; 
this.button4.Text = "使用公匙加密"; 
this.button4.Click += new System.EventHandler(this.button4_Click); 
// 
// textBox1 
// 
this.textBox1.Location = new System.Drawing.Point(104, 32); 
this.textBox1.Multiline = true; 
this.textBox1.Name = "textBox1"; 
this.textBox1.Size = new System.Drawing.Size(168, 32); 
this.textBox1.TabIndex = 1; 
this.textBox1.Text = "textBox1"; 
// 
// label1 
// 
this.label1.Location = new System.Drawing.Point(128, 8); 
this.label1.Name = "label1"; 
this.label1.Size = new System.Drawing.Size(120, 16); 
this.label1.TabIndex = 0; 
this.label1.Text = "請輸入加密的文字"; 
// 
// Form1 
// 
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); 
this.ClientSize = new System.Drawing.Size(504, 357); 
this.Controls.Add(this.tabControl1); 
this.Name = "Form1"; 
this.Text = "Form1"; 
this.tabControl1.ResumeLayout(false); 
this.tabPage1.ResumeLayout(false); 
this.tabPage2.ResumeLayout(false); 
this.ResumeLayout(false); 
} 
#endregion 
/// <summary> 
/// 應用程序的主入口點。 
/// </summary> 
[STAThread] 
static void Main() 
{ 
Application.Run(new Form1()); 
} 
//得到鑰匙信息 
private void button1_Click(object sender, System.EventArgs e) 
{ 
crypt=new RSACryptoServiceProvider(); 
publickey=crypt.ToXmlString(false); 
richtext.Text="導出秘匙的情況下:\n"+publickey+"\n"; 
privatekey=crypt.ToXmlString(true); 
string info="僅僅導出公匙的情況下:\n"+privatekey+"\n"; 
richtext.AppendText(info); 
crypt.Clear(); 
} 
//保存公匙信息 
private void button2_Click(object sender, System.EventArgs e) 
{ 
save=new SaveFileDialog(); 
save.Filter="File Text (*.txt)|*.txt|All File (*.*)|*.*"; 
save.ShowDialog(); 
publicinfo=save.FileName; 
} 
//保存密匙信息 
private void button3_Click(object sender, System.EventArgs e) 
{ 
save=new SaveFileDialog(); 
save.Filter="File Text (*.txt)|*.txt|All File (*.*)|*.*"; 
save.ShowDialog(); 
privateinfo=save.FileName; 
} 
//把鑰匙信息寫入文件 
private void button6_Click(object sender, System.EventArgs e) 
{ 
StreamWriter one=new StreamWriter(publicinfo,true,UTF8Encoding.UTF8); 
one.Write(publickey); 
StreamWriter two=new StreamWriter(privateinfo,true,UTF8Encoding.UTF8); 
two.Write(privatekey); 
one.Flush(); 
two.Flush(); 
one.Close(); 
two.Close(); 
MessageBox.Show("成功保存公匙和密匙!"); 
} 
//用公匙加密 
private void button4_Click(object sender, System.EventArgs e) 
{ 
crypt=new RSACryptoServiceProvider(); 
UTF8Encoding enc=new UTF8Encoding(); 
bytes=enc.GetBytes(textBox1.Text); 
crypt.FromXmlString( readpublickey ); 
bytes = crypt.Encrypt( bytes,false ); 
string encryttext=enc.GetString(bytes);//encryptbyte); 
richtext2.Text="加密結果:\n"+encryttext+"\n"+"加密結束!"; 
} 
private void button5_Click(object sender, System.EventArgs e) 
{ 
UTF8Encoding enc=new UTF8Encoding(); 
byte [] decryptbyte; 
crypt.FromXmlString ( readprivatekey ) ; 
decryptbyte = crypt.Decrypt( bytes,false ); 
string decrypttext=enc.GetString( decryptbyte ); 
richtext3.Text = "解密結果:\n" + decrypttext + "\n" + "解密結束!" ; 
} 
//從文件中讀取公匙信息 
private void button7_Click(object sender, System.EventArgs e) 
{ 
StreamReader sr ; 
open = new OpenFileDialog( ); 
open.Filter="Text File (*.txt)|*.txt|All File (*.*)|*.* "; 
// open.ShowDialog(); 
if(open.ShowDialog()==DialogResult.OK) 
{ 
sr = new StreamReader(open.FileName,UTF8Encoding.UTF8); 
} 
else 
{ 
MessageBox.Show("發生錯誤!"); 
return; 
} 
readpublickey = sr.ReadToEnd(); 
sr.Close(); 
} 
//從文件中讀取私匙信息 
private void button8_Click(object sender, System.EventArgs e) 
{ 
open = new OpenFileDialog( ); 
open.Filter="Text File (*.txt)|*.txt|All File (*.*)|*.* "; 
open.ShowDialog(); 
StreamReader sr = new StreamReader(open.FileName,UTF8Encoding.UTF8); 
readprivatekey = sr.ReadToEnd(); 
sr.Close(); 
} 
} 
}
