日期:2010-05-02  浏览次数:20420 次


(亿众国际-009)[原创]这是一个非常有趣的例子!

/////////////////////////////////////////////////////////////
//Author: stardicky //
//E-mail: stardicky@hotmail.com //
//QQNumber: 9531511 //
//Company: Ezone International //
//Class: HBS-0308 //
//title: 利用密码系统保证数据安全 //
/////////////////////////////////////////////////////////////
//介绍: //
// 这是一个非常有趣的例子! //
// 在Ezone International公司里Ting是Dicky的女友,Viisen是//
//他们的上级.Viisen不允许公司内部员工谈恋爱,上有政策,下有对//
//策,Ting和Dicky利用空闲时间通过邮件的方式与对方通讯,Viisen//
//下发任务给Dicky的方式也是通过发送邮件.为了保存邮件的安全 //
//性,邮件采用RC2(对称加密)加密方式进行发送,RC2的密钥经过RSA//
//(非对称加密)的加密.Ting,Dicky和Viisen各自有一对公钥和密钥//
//.Ting和Dicky的通讯内容对于Viisen是不可见的,Dicky和Viisen //
//的通讯内容对于Ting是不可见的. //
/////////////////////////////////////////////////////////////

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

namespace EzoneSecuritySystem
{
class EzoneSecurityDemo
{
//创建三个员工对象,分别是 Dicky, Ting, Viisen
public static EzonePerson Dicky=new EzonePerson("Dicky");
public static EzonePerson Ting=new EzonePerson("Ting");
public static EzonePerson Viisen=new EzonePerson("Viisen");

[STAThread]
public static void Main(string[] args)
{
Console.WriteLine("==================== 场景一: Dicky给自己发送邮件消息 ====================");
Scene_1();
Console.WriteLine("=========================================================================");
Console.Write("按任意键继续......");
Console.In.ReadLine();

Console.WriteLine("==================== 场景二: Dicky给Ting发送邮件消息 ====================");
Scene_2();
Console.WriteLine("=========================================================================");
Console.Write("按任意键继续......");
Console.In.ReadLine();

Console.WriteLine("================ 场景三: Dicky给Ting ,Viisen发送邮件消息 ================");
Scene_3();
Console.WriteLine("=========================================================================");
Console.Write("按任意键继续......");
Console.In.ReadLine();

}

/// <summary>
/// Dicky给自己发送邮件消息
/// </summary>
public static void Scene_1()
{
Console.WriteLine("Dicky用自己的公钥加密信息");
EzoneMessage DickyMessage=Dicky.EncryptMessage("我今天努力了吗?");
Console.WriteLine(System.Environment.NewLine);

Console.WriteLine("Dicky用自己的私钥解密消息");
Dicky.DecryptMessage(DickyMessage);
Console.WriteLine(System.Environment.NewLine);

Console.WriteLine("Viisen试图用自己的私钥解密消息");
Viisen.DecryptMessage(DickyMessage);
Console.WriteLine(System.Environment.NewLine);
}
/// <summary>
/// Dicky给Ting发送邮件消息
/// </summary>
public static void Scene_2()
{
Console.WriteLine("Dicky获得Ting的公钥");
Dicky.GetPublicKey(Ting);
Console.WriteLine(System.Environment.NewLine);