C#使用DES加密解密DataSet!
來源:互聯網
上載者:User
1 using System;
2 using System.Data;
3 using System.Data.SqlClient;
4 using System.Security;
5 using System.Security.Cryptography;
6 using System.IO;
7 using System.Xml;
8 namespace DES_Security_Demo
9 {
10 class Class1
11 {
12 [STAThread]
13 static void Main(string[] args)
14 {
15 System.Data.SqlClient.SqlConnection connection=new System.Data.SqlClient.SqlConnection
16 ("Server=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;");
17 System.Data.SqlClient.SqlDataAdapter myda=new System.Data.SqlClient.SqlDataAdapter
18 ("select * from customers",connection);
19 //加密
20 FileStream fs=new FileStream("DSencrypted.dat",FileMode.Create,
21 FileAccess.Write);
22 DataSet MyDS=new DataSet();
23 DataSet MyDS2=new DataSet();
24 myda.Fill(MyDS,"Customers");
25 DESCryptoServiceProvider DES=new DESCryptoServiceProvider();
26 ICryptoTransform DESencrypter=DES.CreateEncryptor();
27 CryptoStream cryptStream=new CryptoStream(fs,DESencrypter,CryptoStreamMode.Write);
28 MyDS.WriteXml(cryptStream,XmlWriteMode.WriteSchema);
29 cryptStream.Close();
30 //解密
31 FileStream fsRead=new FileStream("DSencrypted.dat",FileMode.Open,FileAccess.Read);
32 ICryptoTransform DESdecrypter=DES.CreateDecryptor();
33 CryptoStream decryptStream=new CryptoStream(fsRead,DESdecrypter,
34 CryptoStreamMode.Read);
35 //兩種方式解析DataSet,書上用的第1種,其它直接用第2種也可
36 //1
37 XmlTextReader plainStreamR=new XmlTextReader(decryptStream);
38 MyDS2.ReadXml(plainStreamR,XmlReadMode.ReadSchema);
39 //2
40 // MyDS2.ReadXml(decryptStream,XmlReadMode.ReadSchema);
41 Console.WriteLine("Customers Table SuccessFully Encrypted and Decrypted.");
42 Console.WriteLine("First Customer:");
43 foreach(DataColumn _Column in MyDS2.Tables["Customers"].Columns) {
44 Console.WriteLine("{0}\t",MyDS2.Tables["Customers"].Rows[0][_Column]);
45 }
46 }
47 }
48 }