1using System;
2using System.Collections;
3using System.Security.Cryptography;
4using System.IO ;
5using System.Data;
6using System.Runtime.Serialization.Formatters.Binary;
7namespace zjz.ClsDoCode
8{
9 /// <summary>
10 /// ClsEncryption 的摘要说明。
11 /// </summary>
12 public class ClsEncryption
13 {
14 public ClsEncryption()
15 {
16 //
17 // TODO: 在此处添加构造函数逻辑
18 //
19 }
20 //密钥
21 //获取或设置对称算法的机密密钥。机密密钥既用于加密,也用于解密。为了保证对称算法的安全,必须只有发送方和接收方知道该机密密钥。有效密钥大小是由特定对称算法实现指定的,密钥大小在 LegalKeySizes 中列出。
22 private static byte[] DESKey = new byte[] {11, 23, 93, 102, 72, 41, 18, 12};
23 //获取或设置对称算法的初始化向量
24 private static byte[] DESIV = new byte[] {75, 158, 46, 97, 78, 57, 17, 36};
25
26 public static void EncryptDataSetToBinary(DataSet objDataSet, string outFilePath)
27 {
28 DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
29 FileStream fout = new FileStream(outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
30 //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
31 CryptoStream objCryptoStream = new CryptoStream(fout, objDES.CreateEncryptor(DESKey, DESIV), CryptoStreamMode.Write);
32 //StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);
33 objDataSet.RemotingFormat = SerializationFormat.Binary;
34 BinaryFormatter bf = new BinaryFormatter();
35 bf.Serialize(objCryptoStream, objDataSet);
36 objCryptoStream.Close();
37 fout.Close();
38
39 }
40 public static DataSet DecryptDataSetFromBinary(string inBinFilePath)
41 {
42 DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
43 FileStream fin = new FileStream(inBinFilePath, FileMode.Open, FileAccess.Read);
44 //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
45 CryptoStream objCryptoStream = new CryptoStream(fin, objDES.CreateDecryptor(DESKey, DESIV), CryptoStreamMode.Read);
46 BinaryFormatter bf = new BinaryFormatter();
47 DataSet ds = (DataSet)bf.Deserialize(objCryptoStream);
48 fin.Close();
49 return ds;
50 }
51 }
52}
2using System.Collections;
3using System.Security.Cryptography;
4using System.IO ;
5using System.Data;
6using System.Runtime.Serialization.Formatters.Binary;
7namespace zjz.ClsDoCode
8{
9 /// <summary>
10 /// ClsEncryption 的摘要说明。
11 /// </summary>
12 public class ClsEncryption
13 {
14 public ClsEncryption()
15 {
16 //
17 // TODO: 在此处添加构造函数逻辑
18 //
19 }
20 //密钥
21 //获取或设置对称算法的机密密钥。机密密钥既用于加密,也用于解密。为了保证对称算法的安全,必须只有发送方和接收方知道该机密密钥。有效密钥大小是由特定对称算法实现指定的,密钥大小在 LegalKeySizes 中列出。
22 private static byte[] DESKey = new byte[] {11, 23, 93, 102, 72, 41, 18, 12};
23 //获取或设置对称算法的初始化向量
24 private static byte[] DESIV = new byte[] {75, 158, 46, 97, 78, 57, 17, 36};
25
26 public static void EncryptDataSetToBinary(DataSet objDataSet, string outFilePath)
27 {
28 DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
29 FileStream fout = new FileStream(outFilePath, FileMode.OpenOrCreate, FileAccess.Write);
30 //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
31 CryptoStream objCryptoStream = new CryptoStream(fout, objDES.CreateEncryptor(DESKey, DESIV), CryptoStreamMode.Write);
32 //StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);
33 objDataSet.RemotingFormat = SerializationFormat.Binary;
34 BinaryFormatter bf = new BinaryFormatter();
35 bf.Serialize(objCryptoStream, objDataSet);
36 objCryptoStream.Close();
37 fout.Close();
38
39 }
40 public static DataSet DecryptDataSetFromBinary(string inBinFilePath)
41 {
42 DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
43 FileStream fin = new FileStream(inBinFilePath, FileMode.Open, FileAccess.Read);
44 //用指定的 Key 和初始化向量 (IV) 创建对称数据加密标准 (DES) 加密器对象
45 CryptoStream objCryptoStream = new CryptoStream(fin, objDES.CreateDecryptor(DESKey, DESIV), CryptoStreamMode.Read);
46 BinaryFormatter bf = new BinaryFormatter();
47 DataSet ds = (DataSet)bf.Deserialize(objCryptoStream);
48 fin.Close();
49 return ds;
50 }
51 }
52}