您的位置:首页 > 编程语言 > C#

C#使用DES加密解密DataSet!

2006-07-23 15:23 351 查看
using System;
using System.Data;
using System.Data.SqlClient;
using System.Security;
using System.Security.Cryptography;
using System.IO;
using System.Xml;
namespace DES_Security_Demo
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
System.Data.SqlClient.SqlConnection connection=new System.Data.SqlClient.SqlConnection
("Server=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
System.Data.SqlClient.SqlDataAdapter myda=new System.Data.SqlClient.SqlDataAdapter
("select * from customers",connection);
//加密
FileStream fs=new FileStream("DSencrypted.dat",FileMode.Create,
FileAccess.Write);
DataSet MyDS=new DataSet();
DataSet MyDS2=new DataSet();
myda.Fill(MyDS,"Customers");
DESCryptoServiceProvider DES=new DESCryptoServiceProvider();
ICryptoTransform DESencrypter=DES.CreateEncryptor();
CryptoStream cryptStream=new CryptoStream(fs,DESencrypter,CryptoStreamMode.Write);
MyDS.WriteXml(cryptStream,XmlWriteMode.WriteSchema);
cryptStream.Close();
//解密
FileStream fsRead=new FileStream("DSencrypted.dat",FileMode.Open,FileAccess.Read);
ICryptoTransform DESdecrypter=DES.CreateDecryptor();
CryptoStream decryptStream=new CryptoStream(fsRead,DESdecrypter,
CryptoStreamMode.Read);
//两种方式解析DataSet,书上用的第1种,其它直接用第2种也可
//1
XmlTextReader plainStreamR=new XmlTextReader(decryptStream);
MyDS2.ReadXml(plainStreamR,XmlReadMode.ReadSchema);
//2
// MyDS2.ReadXml(decryptStream,XmlReadMode.ReadSchema);
Console.WriteLine("Customers Table SuccessFully Encrypted and Decrypted.");
Console.WriteLine("First Customer:");
foreach(DataColumn _Column in MyDS2.Tables["Customers"].Columns) {
Console.WriteLine("{0}/t",MyDS2.Tables["Customers"].Rows[0][_Column]);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: